最近在做一個項目主機大概有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裏面查看所有執行的結果。