首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >执行多个ssh命令的一行命令

执行多个ssh命令的一行命令
EN

Stack Overflow用户
提问于 2017-09-29 03:19:41
回答 2查看 449关注 0票数 0

我有一个包含主机信息的文件,一个主机一行

代码语言:javascript
复制
host1
host2
host3

我想做的是

代码语言:javascript
复制
ssh host1 'my command' 
ssh host2 'my command' 
ssh host3 'my command' 

如何使用一行命令来实现它(不是复杂的shell脚本),谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-29 03:30:51

这是不是你想要的太复杂了?

代码语言:javascript
复制
for h in $(<file); do ssh $h 'my command'; done

另一种可能性是:

代码语言:javascript
复制
cat file | xargs -I% -- ssh % 'my command'

或更短:

代码语言:javascript
复制
<file xargs -I% -- ssh % 'my command'

如果您确信ssh命令中没有任何-选项,则更短:

代码语言:javascript
复制
<file xargs -I% ssh % 'my command'
票数 1
EN

Stack Overflow用户

发布于 2017-09-29 03:30:45

代码语言:javascript
复制
while read -r line; do ssh "$line" 'my command'; done < host

该命令将逐行读取文件,并将每一行保存到变量$line中。并使用$line中的主机保存执行ssh命令。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46481307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档