最近在做一个项目主机大概有100多台,需要批量的在这些主机上面创建文件夹或者是修改一些系统参数,为了方便我的工作写了一个脚本自动的登录主机并且自动的执行脚本这样每一台主机上面都是同一个操作,也不会出现漏的情况效率还很高。
系统为centos7的系统,需要在脚本主机上安装sshpass,安装命令如下:
yum install sshpass -y
话不多说上代码,这里有两个文件
ip_config:文件用来存放ip地址。
batch.sh :脚本代码。
ip_config内容如下:
[root@node1 lyx]# cat ip_config
192.168.48.132
192.168.48.133
batch.sh 内容如下:
cmd变量里面的内容就是我们需要输入批量执行的shell命令。
[root@node1 lyx]# cat batch.sh
username="root"
passwd="1qazxsw2"
port="22"
timeout=3
cmd="mkdir /home/test 2>&1;echo 123;"
for host in `cat ip_config`
do
result=""
result=`sshpass -p "$passwd" ssh -p $port -o StrictHostKeyChecking=no -o ConnectTimeout=$timeout $username@$host $cmd`
echo $host >> result.txt
echo $result >> result.txt
done
echo "finish"
执行脚本
sh batch.sh
我们可以result.txt里面查看所有执行的结果。