平时服务器多的时候难免会让多台服务器执行相同命令,当然了,可以用一些shell工具,可是如果有一百台服务器就会开一百个窗口,这.....,下面是用脚本实现这个功能(ssh 免密是通的),也可以用别的工具实现,迫于着急用,以后再研究。
- 直接打开文本编辑器输入以下内容:
#!/bin/sh
doCommand()
{
hosts=`sed -n '/^[^#]/p' hostlist`
for host in $hosts
do
echo ""
echo HOST $host
ssh $host "$@"
done
return 0
}
if [ $# -lt 1 ]
then
echo "$0 cmd"
exit
fi
doCommand "$@"
echo "return from doCommand"
- 保存为sh 脚本(docommand.sh),notepad++ 或者别的编辑器记得转为unix 格式
- 继续编辑一个hostlist 文件,里面输入你想要执行命令的机器
192.168.xx.xx
192.168.xx.xx
192.168.xx.xx
...
- 把这两个文件上传至服务器(必须在同一目录)
- sh docommand.sh "ls /usr/" 执行测试