使用ssh和scp时组合多个命令

时间:2013-10-08 16:45:34

标签: linux bash

我有多个ssh命令为我做一些任务。例如:

ssh a-vm "rm -f /home/dir/file1.xlsx"
ssh a-vm "rm -f /home/dir/file2.xml"

scp me@b-vm:/somedir/file1.xlsx .
scp me@b-vm:/somedir/file2.xml .

1)有没有办法将2个ssh命令合并为1个和2个scp命令为1? 2)如果我多次使用ssh和scp而不是1次,是否有成本?

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

你可以这样做:

ssh a-vm "rm -f /home/dir/file1.xlsx ; rm -f /home/dir/file2.xml"
scp "me@b-vm:/somedir/{file1.xlsx,file2.xml}" .

每次ssh / scp调用都会花费你连接时间和一些cpu时间(如果你同时对数百台机器这样做,可能会很重要,否则不太可能)。

或者,您可以为ssh使用持久主连接,并在其上使用隧道连接。这将节省几次网络往返 - 请参阅http://en.wikibooks.org/wiki/OpenSSH/Cookbook/Multiplexing