我是ssh的新手,请原谅我,如果我的问题很简单......我需要让远程计算机多次执行一组命令,所以我正在考虑使用ssh进行循环...问题是我不知道我知道我将这些命令保存在文件中并循环播放该文件,或者我可以将它们保存在ssh中并只是调用它们。我真的很麻烦......如果我做这样的循环
i= 10
while i!= 0
execute command.text file ???
i--
如何告诉它执行文件?
答案 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
中写的所有命令。