在GNU Parallel中执行SCP

时间:2013-02-23 04:54:10

标签: bash scp gnu-parallel

我需要并行运行一些命令,包括SCP。为此,我使用GNU Parallel。问题是我不知道如何将密码传递给SCP。这是一条类似于我正在运行的那条线:

ls 2011_* | parallel scp {} user@domain

如果ls找到3个文件,scp会同时询问3次密码,我只能输入密码到最后一个进程来提示。

我暂时解决了使用公钥连接的问题,但由于公司政策的原因,将来这不会是一个选项。我阅读了SCP手册,我找不到一个选项,但我非常确信Parallel应该有一个允许我输入密码的选项。

有人知道解决这个问题的方法吗?

编辑:我想知道是否有一种方法可以告诉parallel密码,以便每次要求时都可以将密码提供给scp。也许有这样的事情:

ls 2011_* | parallel scp {} user@domain < file_with_password.txt

但指定STDIN的重定向适用于scp,而不适用于lsparallel

2 个答案:

答案 0 :(得分:4)

您需要查看ssh-agent:拥有密码保护证书的好处,只需输入一次密码短语一次。

答案 1 :(得分:2)

parallel sshpass -p $PASS scp -P $PORT -rp {} ~/to_dir ::: $ADDRESS:~/from_dir/*