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!

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值