介绍:
基本信息
作者:朱明宇
名称:批量实现多个远程服务器执行命令 (单条命令版)
作用:批量实现多个远程服务器执行命令 (单条命令版)
使用方法
1. 将此脚本和清单 $list 文件放在同一目录下
2. 清单 $list 里每一个远程服务器名或 IP 地址占用 1 行
3. 在此脚本的分割线内写入相应的内容
4. 给此脚本添加执行权限
5. 执行此脚本
脚本分割线里的变量
1. execute=”top -bn 1 | head -1″ #指定要执行的命令
2. list=servers.txt #指定服务器清单
注意
执行脚本的用户要在远程服务器中有同名用户,此用户拥有免密钥 sudo su 权限,且能被本服务器免密钥 ssh
脚本:
#!/bin/bash
####################### Separator ########################
execute="top -bn 1 | head -1"
list=servers.txt
####################### Separator ########################
echo "WARNING: before execute this, please execute \"screen -S update\" command first"
read -p "will execute $execute on servers in $list, if you agree please input y : " b
echo "you input $b"
if [ "$b" != "y" ];then
echo "you don't agree so exit now"
exit 0
fi
num=0
for i in `awk '{print $1}' $list`
do
let num++
echo "$num $i"
ssh -t $i "sudo -u root su - root -c \"$execute\""
echo "$i has been done"
echo
done