Gnu并行rsync无限期挂起

Gnu并行rsync无限期挂起

需要明确的是,我正在gnu parallel设置中运行这个确切的命令(变量已更改):

/usr/bin/parallel -q -j20 
    rsync --recursive -av -e ssh -oCompression=no -x -T 
    -oUserKnownHostsFile=/dev/null -oConnectTimeout=15 
    -i ssh_key -l some_username --chmod=Dugo+rwx,Fugo+rw 
    --files-from {} /some/base/dir somehostame:/some/other/dir

这将消耗大约 50 个文件(包含 rsync 的文件/目录名称列表),跨越 20 个工作进程gnu parallel。我昨天晚上运行了上述操作,回来工作时发现仍然有 1 个 rsync 作业挂起:

rsync --recursive -av -e ssh -oCompression=no -x -T -
    oUserKnownHostsFile=/dev/null -oConnectTimeout=15 
    -i ssh-beta-secdata-20180515t213639 -l diskmaker 
    --chmod=Dugo+rwx,Fugo+rw 
    --files-from ./some_filelist /some/base/dir somehostname:/some/other/dir

所以要清楚的是,some_filelist这是我想要执行 rsync 的目录列表。

我会将文件从根目录(就像chroot“d”)取出/some/base/dir到远程目录somehostname:/some/other/dir

因此,大约有 500 个工作岗位可供选择parallel。我分析了每个文件列表,没有什么特别的./some_filelist;来自 rsync dryrun 的标准 200 个文件。

有人对这个问题有诊断吗?我完全不知道这是怎么发生的。如果需要,我可以发布更多片段。

答案1

正如 Ole Tange 所建议的,当您尝试仅使用一个参数(在您的情况下为目录名称)进行 rsync 时,您可能会看到 rsync 要求您输入 ssh 密码。当我在实验中遇到同样的问题时,我发现并行不会提示您输入 ssh 密码,但在后台它需要一个。

应用答案之一这个超级用户问题解决了我的问题。它特别指出;

1)创建公钥;

ssh 密钥生成器

2)将该密钥复制到“somehostname”

ssh-copy-id -i ~/.ssh/id_rsa.pub user@somehostname 或 somehostname 的 IP 地址

就这样。完成这些步骤后,这两台计算机之间的 ssh 连接不需要提供 ssh 密码。就我而言,该命令使用此配置停止挂起。

相关内容