这篇文章主要介绍shell脚本如何实现同时多台远程主机执行命令,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!实现需求在对单台机器做操作时我们会用“ssh ip”的方式登录到机器上,可以写这样一个工具vssh ip1,
这篇文章主要介绍shell脚本如何实现同时多台远程主机执行命令,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
实现需求
在对单台机器做操作时我们会用“ssh ip”的方式登录到机器上,可以写这样一个工具vssh ip1,ip2,…ipn 来模拟登录到n 台服务器,登录后所有操作相当于同时对n 台服务器生效。
实现方法
首页要确保可以通过本地公钥无密码登录远程主机:
ssh-copy-id [-i [identity_file]] [user@]Machine
shell脚本
#!/bin/bash# -------------------------------------------------------------------------------# Author: Loya.Chen# Description: Execute commands on multiple remote hosts at the same time.# -------------------------------------------------------------------------------set -eUsage() { echo "Usage: $0 host1 host2 ... 'command'"}if [ $# -lt 2 ] ;then Usage exit 0else cmd=${!#}filogfile=$(mktemp)i=1success=0failed=0for ip in $@;do if [ $i -eq $# ];then break fi ssh $ip $cmd &> $logfile if [ $? -eq 0 ];then #((success++)) success=$(($success+1)) echo -e "\n\033[32m$ip | success \033[0m \n" cat $logfile else ((failed++)) echo -e "\n\033[31m$ip | failed \033[0m\n " cat $logfile fi ((i++))doneecho -e '\n-------------------------'echo -e "\033[32msuccess: $success | failed: $failed \033[0m"echo '-------------------------'
示例
$ bash vssh 10.0.0.11 10.0.0.12 'free -m'10.0.0.11 | success total used free shared buffers cachedMem: 2871 156 2715 0 8 36-/+ buffers/cache: 111 2760Swap: 2047 0 204710.0.0.12 | success total used free shared buffers cachedMem: 980 615 365 0 12 69-/+ buffers/cache: 533 447Swap: 2047 0 2047-------------------------success: 2 | failed: 0 -------------------------
以上是“shell脚本如何实现同时多台远程主机执行命令”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!
--结束END--
本文标题: shell脚本如何实现同时多台远程主机执行命令
本文链接: https://www.lsjlt.com/news/256805.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-05
2024-05-05
2024-05-04
2024-05-04
2024-05-04
2024-05-04
2024-05-04
2024-05-04
2024-05-04
2024-05-04
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0