日常使用的shell脚本

时间:2023-03-08 16:32:00
日常使用的shell脚本

1、shell实现无密码登陆

host=$
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 -`
id1=`uname -n|cut -c -`
if ((#$id1 % == ));then
        ((id2=#$id1+))
else
        ((id2=#$id1-))
fi
if ((#$id1 < || #$id1 == ));then
        host2=${base}${id2}
elif ((#$id1 < || #$id1 == ));then
        host2=${base}${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=
gpgcheck=
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=
gpgcheck=
gpgkey=ftp://10.0.0.2/mnt/rhel6.6/RPM-GPG-KEY-redhat-release

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

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

#cd /mnt/;nohup tiotest -f  -b  -t  >/tmp/d1.`hostname`.out >& &
#cd /mnt/;nohup tiotest -f -b -t >/tmp/d2.`hostname`.out >& &
#cd /mnt/;nohup tiotest -f -b -t >/tmp/d3.`hostname`.out >& &
cd /mnt/;nohup tiotest -f -b -t >>/tmp/d4.`hostname`.out >& &
cd /mnt/;nohup tiotest -f -b -t >>/tmp/d5.`hostname`.out >& &
cd /mnt/;nohup tiotest -f -b -t >>/tmp/d6.`hostname`.out >& &
~                                                                               

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.
   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./bin:

8、使用tiotest的简单脚本

base=`hostname|cut -c -`
   ((idx=#$base*-))
   if [ x$ = x ];then
        echo "too few argument"
        exit
   fi
   mkdir -p result/$
   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

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