2015-04-30 88 views
0

我是新来的SSH如此原谅我,如果我的问题是微不足道的..我需要做一个远程计算机执行一组命令多次,所以我想用ssh做一个循环..问题是我不知道我将这些命令保存在一个文件中,并在该文件中循环,或者我可以将它们保存在ssh中,然后调用它们..我真的很烦恼。如果我做一个循环这如何ssh在几个命令循环

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

如何告诉它执行该文件?

回答

0

只需在远程机器上的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' 
0

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

script.sh,它会遍历你的命令的束10倍:

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

和路径它远程服务器上执行时: $ ssh $SERVERNAME < script.sh

0

如果你有这个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所有命令。