我是新来的SSH如此原谅我,如果我的问题是微不足道的..我需要做一个远程计算机执行一组命令多次,所以我想用ssh做一个循环..问题是我不知道我将这些命令保存在一个文件中,并在该文件中循环,或者我可以将它们保存在ssh中,然后调用它们..我真的很烦恼。如果我做一个循环这如何ssh在几个命令循环
i= 10
while i!= 0
execute command.text file ???
i--
如何告诉它执行该文件?
我是新来的SSH如此原谅我,如果我的问题是微不足道的..我需要做一个远程计算机执行一组命令多次,所以我想用ssh做一个循环..问题是我不知道我将这些命令保存在一个文件中,并在该文件中循环,或者我可以将它们保存在ssh中,然后调用它们..我真的很烦恼。如果我做一个循环这如何ssh在几个命令循环
i= 10
while i!= 0
execute command.text file ???
i--
如何告诉它执行该文件?
只需在远程机器上的shell中首先运行所需的命令即可。
你会发现大量的信息超过约壳/ bash中环互联网/ CSH/whatevershell:
例如假设的bash运行在远程主机(来源:http://www.bashoneliners.com/)
$ for ((i=1; i<=10; ++i)); do echo $i; done
一旦你会知道,只需从你想要触发动作的机器上向ssh命令发送声明:
$ ssh [email protected] 'for ((i=1; i<=10; ++i)); do echo $i; done'
你可以编写一个简单的脚本, l执行所需的命令,并将其路由到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 [email protected] "$0" "}' | sh -x
例如,如果command.text
包含:
ls -lart
cd /tmp
uname -a
这将让你做ssh [email protected]
写在command.text
所有命令。