linux - 两台服务器之间的远程 rsync 管道损坏

标签 linux bash rsync scp

我正在尝试在 ubuntu 16.04 上使用 bash 将大型数据集(768 Gigs)从一台远程机器传输到另一台机器。我似乎遇到的问题是我使用 rsync 并且机器将传输几个小时然后在连接不可避免地中断时退出。所以假设我在机器 A 上,远程服务器是机器 B 和 C(所有机器都使用 ubuntu 16.04)。我 ssh 到机器 B 并使用这个命令:

nohup rsync -P -r -e ssh /path/to/files/on/machine_B user@machine_C:directory &

请注意,我有授权 key 设置,因此机器 B 和 C 之间不需要密码

几个小时后,我在 nohup 文件中得到以下内容:

sending incremental filelist
file_1.bam
90,310,583,648 100%   36.44MB/s    0:39:23 (xfr#4, to-chk=5/10)
file_2.bam
79,976,321,885 100%   93.25MB/s    0:13:37 (xfr#3, to-chk=6/10)
file_3.bam
88,958,959,616  88%   12.50MB/s    0:15:28  rsync error: unexplained error (code 129) at rsync.c(632) [sender=3.1.1]
rsync: [sender] write error: Broken pipe (32)

我使用 nohup 是因为即使出现挂断,它也会继续运行。我没有尝试过 sh -c 也没有尝试过从机器 A 运行命令,因为在这一点上,无论我尝试什么都只是猜测,我将不胜感激。

最佳答案

对于那些感兴趣的人,我还尝试在机器 B 上使用 nohup 命令运行以下脚本。

脚本:

chomp( my @files = `ls /path/to/files/on/machineB/*` );
foreach ( @files ) { system("scp $_ user@machineC:destination/"); }

我仍然收到截断的文件。

目前以下命令似乎正在运行:

nohup rsync -P --append -r -e ssh /path/to/files/on/machine_B user@machine_C:directory &

您只需检查 nohup 文件是否存在管道损坏错误,并在必要时重新输入命令。

关于linux - 两台服务器之间的远程 rsync 管道损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42070212/

相关文章:

linux - 使用 formail 获取电子邮件文件的最后一封电子邮件

linux - 将数据从一个 HDFS 目录连续复制到另一个目录

linux - 从 cron 调用时脚本不起作用

ssh - Lsync在主-主/双向设置中未按正确的顺序处理文件

linux - 结构设备中的 of_node 参数是什么?

ruby - 在 bash 中打开一个命名管道,而不读取或写入它

bash - 如何改进读取变量值并将其写入文件的逻辑?

bash - 启用登录提示后,我没有 shell 颜色

linux - Cron 启动同一个进程两次

linux - 名称中带有反斜杠的 Tar 文件夹