rsync 挂在本地副本上

rsync 挂在本地副本上

我继承了一个系统,用于将内容从一个 Django 实例(暂存)移动(“推广”)到另一个(生产)。我正在应用程序的另一部分测试一些新功能,并希望确保它与现有的推广代码兼容。

我遇到的问题是在 中rsync,它似乎在第二次调用时挂起。也就是说,程序尝试同步两个文件夹,assets/filesassets/images,并在第二个文件夹上挂起。它正确完成了第一个 rsync。

我正在使用rsync version 3.0.9 protocol version 30。pythonUbuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic x86_64)调用的命令是rsync -rhva --files-from=- /home/staging/assets/files/ /home/production/assets/images

我已经设置了一个测试场景,其中“生产”服务器只是作为另一个用户在同一个 vagrant ubuntu 框上运行。

有大量相对较大的文件,所以我知道这可能需要一段时间,但到目前为止它已经运行了约 45 分钟,没有进一步的输出。[更新:整晚都这样,没有变化]通过网络使用 rsync 下载资源大约需要 30 分钟,所以我怀疑这一切是否进展顺利。

此外,尽管我对这些实用程序不太熟悉,但下面的内容令我担心:

$ sudo ps -o wchan 28143
WCHAN
poll_schedule_timeout
$ sudo ps -o wchan 28142
WCHAN
pipe_wait
$ sudo ps -o wchan 28132
WCHAN
poll_schedule_timeout

其中,它们是三个 rsync 进程,是调用 rsync 的 python 脚本的子进程。

进而:

$ sudo strace -p 28132
Process 28132 attached - interrupt to quit
select(0, NULL, NULL, NULL, {0, 12209}) = 0 (Timeout)
wait4(28142, 0x7fff7859feb0, WNOHANG, NULL) = 0
select(0, NULL, NULL, NULL, {0, 50000}) = 0 (Timeout)
wait4(28142, 0x7fff7859feb0, WNOHANG, NULL) = 0
...
$ sudo strace -p 28142
Process 28142 attached - interrupt to quit
write(2, "rsync: mkstemp \"/home/production/"..., 141
...
$ sudo strace -p 28143
Process 28143 attached - interrupt to quit
select(4, [3], [1], [1], {42, 444562}

让它运行一整夜后,状态没有任何变化,所以我中断了 ( ctrl-c)。它挂起同步的(远程)目录现在具有所有预期的文件和目录,但子目录中没有内容。也就是说,rsync 似乎已复制所有文件并创建目录,但未复制这些目录的内容。此时没有错误消息或输出(我可以找到)。

这对我来说是一个新领域,因此,任何关于可遵循的线索或可运行的测试的建议都将非常感谢。

相关内容