如何对多个命令进行 SSH 循环



我是ssh的新手,所以如果我的问题微不足道,请原谅我。我需要让远程计算机多次执行一组命令,所以我正在考虑使用 SSH 制作循环。问题是我不知道我是否将这些命令保存在文件中并在该文件上循环,或者我可以将它们保存在 SSH 中并调用它们..我真的很烦恼..另外,如果我做这样的循环

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

我如何告诉它执行文件?

只需先在远程计算机的 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'

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

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

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

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

如果你有这个command.text文件,你已经把所有的命令都写在了列中(你可以用vi或vim修改它们并把它们放在列中),你甚至不需要做循环,你可以简单地做:

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

例如,如果command.text包含:

ls -lart 
cd /tmp
uname -a

这将允许您通过执行ssh user@remotehost来执行command.text中编写的所有命令。

相关内容

  • 没有找到相关文章

最新更新