shell - 批量服务器执行相同命令

这篇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!

参考并感谢思考的力量的分享

猜你喜欢

转载自blog.csdn.net/wang725/article/details/81145179