一行命令执行多个ssh命令

时间:2017-09-29 03:19:42

标签: linux shell

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

host1
host2
host3

我想做的是

ssh host1 'my command' 
ssh host2 'my command' 
ssh host3 'my command' 

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

2 个答案:

答案 0 :(得分:1)

这对你想要的东西来说太复杂了吗?

for h in $(<file); do ssh $h 'my command'; done

另一种可能性:

cat file | xargs -I% -- ssh % 'my command'

或更短:

<file xargs -I% -- ssh % 'my command'
如果您确定ssh命令中没有任何-选项,则

或更短:

<file xargs -I% ssh % 'my command'

答案 1 :(得分:0)

while read -r line; do ssh "$line" 'my command'; done < host

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

中保存的主机执行ssh命令