与这篇blog不同的是将服务器
和命令
以参数的方式传递
进来执行
1. 脚本:allcmd.sh
#!/bin/bash
if [ "$#" -ne 2 ] ; then
echo "USAGE: $0 -f server_list_file cmd"
exit -1
fi
file_name=$1
cmd_str=$2
cwd=$(pwd)
cd $cwd
serverlist_file="$cwd/$file_name"
if [ ! -e $serverlist_file ] ; then
echo 'server.list not exist';
exit 0
fi
while read line
do
#echo $line
if [ -n "$line" ] ; then
echo "DOING--->>>>>" $line "<<<<<<<"
ssh $line $cmd_str < /dev/null > /dev/null
if [ $? -eq 0 ] ; then
echo "$cmd_str done!"
else
echo "error: " $?
fi
fi
done < $serverlist_file
2. 执行命令:./allcmd.sh host_file_list 'cd; mkdir 20180721'
param1: 参数host_file_list
为包含服务器ip的文件
wfq@ubuntu:~/sbin/shell$ cat host_file_list
192.168.174.132
192.168.174.133
192.168.174.134
param2: 'cd; mkdir 20180721'
要执行的命令
执行结果
wfq@ubuntu:~/sbin/shell$ ./allcmd.sh host_file_list 'cd; mkdir 20180721'
DOING--->>>>> 192.168.174.132 <<<<<<<
cd; mkdir 20180721 done!
DOING--->>>>> 192.168.174.133 <<<<<<<
cd; mkdir 20180721 done!
DOING--->>>>> 192.168.174.134 <<<<<<<
cd; mkdir 20180721 done!
参考并感谢思考的力量的分享