日常使用的shell脚本

1、shell实现无密码登陆

host=$1
expect << EOF
        spawn ssh-copy-id $host
        expect "password:"
        send "123456\r"
expect eof
EOF

2、一个节点分类的shell脚本

network="eth0"
host1=`uname -n`
base=`uname -n|cut -c 1-3`
id1=`uname -n|cut -c 4-6`
if ((10#$id1 %2 == 1));then
        ((id2=10#$id1+1))
else
        ((id2=10#$id1-1))
fi
if ((10#$id1 < 9 || 10#$id1 == 10));then
        host2=${base}00${id2}
elif ((10#$id1 < 99 || 10#$id1 == 100));then
        host2=${base}0${id2}
else
        host2=${base}${id2}
fi
rm -fr /tmp/targets
mkdir -p /tmp/targets

#ha.cf

cp templates/ha.cf /tmp/targets/ha.cf
echo "ucast $network $host2" >> /tmp/targets/ha.cf
echo "ping 20.0.255.254" >> /tmp/targets/ha.cf
echo "auto_failback on" >> /tmp/targets/ha.cf
echo "node $host1" >> /tmp/targets/ha.cf
echo "node $host2" >> /tmp/targets/ha.cf

#haresources

cp templates/haresources /tmp/targets/haresources
echo "$host1 Lustre::$host1-targets" >> /tmp/targets/haresources
echo "$host2 Lustre::$host2-targets" >> /tmp/targets/haresources
#authkeys
cp templates/authkeys /tmp/targets/authkeys
cp -fr /tmp/targets/ha.cf /etc/ha.d/
cp -fr /tmp/targets/haresources /etc/ha.d/haresources
cp -fr /tmp/targets/authkeys /etc/ha.d/authkeys

3、yum源的配置方法,yum源的目标文件为/etc/yum.repos.d/yum.repo

[Server]
name=RHEL 6.6
baseurl=ftp://10.0.0.2/mnt/rhel6.6/Server
enable=1
gpgcheck=0
gpgkey=ftp://10.0.0.2/mnt/rhel6.6/RPM-GPG-KEY-redhat-release
[HA]
name=RHEL 6.6 HA
baseurl=ftp://10.0.0.2/mnt/rhel6.6/HighAvailability
enable=1
gpgcheck=0
gpgkey=ftp://10.0.0.2/mnt/rhel6.6/RPM-GPG-KEY-redhat-release

4、tiotest测试盘阵性能的脚本(nohup 后台执行)

5、使用tiotest测试盘阵性能的简单脚本

#cd /mnt/1;nohup tiotest -f 20000 -b 1048576 -t 8 >/tmp/d1.`hostname`.out 2>&1 &
#cd /mnt/2;nohup tiotest -f 20000 -b 1048576 -t 8 >/tmp/d2.`hostname`.out 2>&1 &
#cd /mnt/3;nohup tiotest -f 20000 -b 1048576 -t 8 >/tmp/d3.`hostname`.out 2>&1 &
cd /mnt/4;nohup tiotest -f 20000 -b 1048576 -t 8 >>/tmp/d4.`hostname`.out 2>&1 &
cd /mnt/5;nohup tiotest -f 20000 -b 1048576 -t 8 >>/tmp/d5.`hostname`.out 2>&1 &
cd /mnt/6;nohup tiotest -f 20000 -b 1048576 -t 8 >>/tmp/d6.`hostname`.out 2>&1 &
~                                                                                

6、重定向符号的使用

1> 指标准信息输出路径
   2> 指错误信息输出路径
   2>&1 将标准信息输出路径指定为错误信息输出路径(也就是都输出在一起)

7、添加环境变量

#!/bin/sh
   export SW_CLUSTER_PATH=/usr/sw-cluster
   export MPI_ROOT=$SW_CLUSTER_PATH/mpi2
   export SLURM_ROOT=$SW_CLUSTER_PATH/slurm-14.11.3
   source $SW_CLUSTER_PATH/intel/composer_xe_2013_sp1.3.174/bin/compilervars.sh intel64
   source $SW_CLUSTER_PATH/intel/composer_xe_2013_sp1.4.211//bin/compilervars.sh intel64
   export PATH=$PATH:$SLURM_ROOT/bin:$MPI_ROOT/bin
   export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SLURM_ROOT/lib:$MPI_ROOT/lib
   export PATH=$PATH:/usr/sw-mpp/bin:/usr/sw-cluster/slurm-14.11.3/bin: 

8、使用tiotest的简单脚本

base=`hostname|cut -c 5-6`
   ((idx=10#$base*3-3))
   if [ x$1 = x ];then
        echo "too few argument"
        exit 1
   fi
   mkdir -p result/$1
   cp /tmp/*.out result/$1/
   for((i=$idx;i<$idx+3;i++));do rm -fr OST$i; done
   for((i=$idx;i<$idx+3;i++));do
        mkdir OST$i
        lfs setstripe -i $i -c 1 OST$i
        if [ $? -ne 0 ];then
                exit 1
        fi
        cd OST$i
        nohup tiotest -b 1048576 -f 20000 -t 8  > /tmp/OST$i.out 2>&1 &
        cd ..
   done
 
9、使用tiotest的简单测试脚本
  
   base=`hostname|cut -c 5-6`
     ((idx=10#$base*3-3))
   while true
   do
   for((i=$idx;i<$idx+3;i++));do rm -fr OST$i; done
   for((i=$idx;i<$idx+3;i++));do
        mkdir OST$i
        lfs setstripe -i $i -c 1 OST$i
        cd OST$i
        nohup tiotest -b 1048576 -f 20000 -t 8 -k1 -k2 -k3 > /tmp/OST$i.out 2>&1 &
        done
        sleep 600
        cd ..
   done
   done

10、挂载nfs网络文件系统

    mkdir /usr/sw-cluster -p
    mount -t nfs nfs_nas:/vol/vol_nas001/sw-cluster /usr/sw-cluster
    mkdir /usr/sw-mpp -p
    mount -t nfs nfs_nas:/vol/vol_nas001/sw-mpp-app /usr/sw-mpp

11、 一个排序的小指令

 du -sh * |sort -nr

显示出所有文件的排序和大小

时间: 2024-10-16 05:48:38

日常使用的shell脚本的相关文章

小黑的日常折腾-网段在线地址扫描shell脚本

学习Linux已经一个月了,不知不觉shell脚本的基本用法已经学习完了,为了检验自己的学习情况,在清明小长假期间花了点时间折腾出了这个脚本.该作品只是练手之作,如果有BUG,请留言指明,我会尽力完善. 该脚本需要用户给定两个参数,第一个参数是网段的起始ip地址,第二个参数是网段的结束ip地址.起始地址的ip地址最后一段必须是1,如192.168.0.1,结束ip地址的最后一位必须是254,如192.168.10.254.另外,起始和结束ip地址的第一段必须相同. 注意: 1.地址范围越大运行程

shell脚本——日常练手

1.猜数小游戏 关键点:命令写法 1.$RANDOM 的使用格式 2.反引号 用于执行命令 3.let 整数自加1的用法 4.引用局部变量,${ }格式 5.elif 后面也要跟 ;then #!/bin/bash #*************猜数游戏************* i=0 #记录猜数次数 num2=`echo $RANDOM | cut -c 1-2` #目标数指定随机值 while true #死循环 do read -p "请输入两位整数:" num1 #输入竞猜初始

shell脚本编程学习笔记(1)

在linux上编程,离不开shell,计划好好看看shell编程,并在这里做些笔记以供有相同兴趣的人分享,主要参考<shell脚本学习指南>. 学习shell脚本编程之前,需要了解脚本编程语言和编译型语言的概念. 一般很多中型.大型的程序是用编译型语言写成的,比如C.C++.Java等.这类程序从源代码编译成目标代码,直接通过计算机执行.编译型语言执行效率比较高,大多运作于底层,处理的是字节.整数.浮点数等机器层级的对象,因此实现一个具体的功能,比如"将一个目录里的所有文件复制到另外

Linux系统shell脚本编程——生产实战案例

Linux系统shell脚本编程--生产实战案例     在日常的生产环境中,可能会遇到需要批量检查内网目前在线的主机IP地址有哪些,还可能需要检查这些在线的主机哪些端口是开放状态,因此依靠手工来检查是可以实现,但比较费时费力,所以需要结合shell脚本来实现批量检查的功能,那么今天就来做个小小的实验. 1.开发脚本前准备 一般大家都知道,测试主机是否在线,常用的命令无非就是ping.nmap,因此,首先找一个地址来测试下ping命令的效果 [[email protected] scripts]

Linux Shell脚本面试25问

Q:1 Shell脚本是什么.它是必需的吗? 答:一个Shell脚本是一个文本文件,包含一个或多个命令.作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件(Shell脚本)来完成这些日常工作任务. Q:2 什么是默认登录shell,如何改变指定用户的登录shell 答:在Linux操作系统,“/bin/bash”是默认登录shell,是在创建用户时分配的.使用chsh命令可以改变默认的shell.示例如下所示: # chsh <用户名> -s <

Linux shell脚本-基础学习笔记

Linux脚本能力不是太强,最近再补习下,毕竟linux shell在日常工作中还是很普遍的, 用起来更方便.省时省力. 以下是学习笔记,偏理论,后面有几个例子,供参考. shell脚本组成元素系统命令.文本处理工具(grep\sed等).变量.条件判断.循环结构和函数 -------------------------------------------- 三剑客:grep,sed,awk,还有wc,sort,head等 ------------------------------------

学习 shell脚本之前的基础知识

转载自:http://www.92csz.com/study/linux/12.htm  学习 shell脚本之前的基础知识 日常的linux系统管理工作中必不可少的就是shell脚本,如果不会写shell脚本,那么你就不算一个合格的管理员.目前很多单位在招聘linux系统管理员时,shell脚本的编写是必考的项目.有的单位甚至用shell脚本的编写能力来衡量这个linux系统管理员的经验是否丰富.笔者讲这些的目的只有一个,那就是让你认真对待shell脚本,从一开始就要把基础知识掌握牢固,然后要

管理员shell脚本

Technorati 标记: shell,df,sed,awk -监视系统统计信息 监视磁盘空闲空间 磁盘资源占用情况 监视CPU和内存使用情况 -执行备份 归档数据文件 脱机存储备份文件 监视系统统计信息 · 监视磁盘空闲空间 此shell脚本将监视特定卷上(如/)的可用磁盘空间,并在可用磁盘空间低于设置的阈值时发送一则电子邮件信息. #!/bin/bash # monitor available disk space #注意格式 变量=`值` SPACE=`df|sed -n '/\/$/p

Shell脚本编程基础

什么是Shell 操作系统最外层的程序,shell通过提示符让用户输入,向操作系统解释该输入,然后处理来自操作系统的任何结果输出来,管理用户与操作系统之间的交互. Shell是一个用户跟操作系统之间的一个命令解释器.Shell是用户与Linux操作系统之间沟通的桥梁.用户可以输入命令执行,又可以利用 Shell脚本编程去运行. 为什么要用到shell shell是一个交互式程序,当用户输入一条命令,shell就解释一条,一次只处理一条命令.如果我们一些复杂操作,逐个敲命令工作量就会增大,因此,我