如何在几个命令上ssh一个循环

时间:2015-04-30 09:59:57

标签: bash ubuntu ssh command

我是ssh的新手,请原谅我,如果我的问题很简单......我需要让远程计算机多次执行一组命令,所以我正在考虑使用ssh进行循环...问题是我不知道我知道我将这些命令保存在文件中并循环播放该文件,或者我可以将它们保存在ssh中并只是调用它们。我真的很麻烦......如果我做这样的循环

i= 10
while i!= 0 
execute command.text file ???
i--

如何告诉它执行文件?

3 个答案:

答案 0 :(得分:0)

首先尝试远程计算机上的shell以运行所需的命令。

你会在互联网上找到关于shell / bash / csh / whatevershell中的循环的大量信息:

例如假设bash在远程主机中运行(来自:http://www.bashoneliners.com/

$ for ((i=1; i<=10; ++i)); do echo $i; done

了解完毕后,只需将该语句从您想要触发操作的机器上的ssh命令中获取:

$ ssh user@remotehost 'for ((i=1; i<=10; ++i)); do echo $i; done'

答案 1 :(得分:0)

您可以编写一个简单的脚本来执行所需的命令,并将其路由到ssh。 例如:

script.sh,它会迭代你的一堆命令10次:

for i in $(seq 10)
do
 command1
 command2
 command3
done

并将其路由到远程服务器以执行: $ ssh $SERVERNAME < script.sh

答案 2 :(得分:0)

如果您有这个command.text文件,其中您已经在列中编写了所有命令(您可以使用vi或vim修改它们并将它们放在列中),您甚至不需要进行循环,你可以这样做:

cat command.text | awk '{print "ssh user@remotehost "$0" "}' | sh -x

例如,如果command.text包含:

ls -lart 
cd /tmp
uname -a

这样,您就可以通过command.text执行ssh user@remotehost中写的所有命令。

相关问题