我正在将一些大文件(1.5Gb)传送到cronjob中的Windows FTP服务器。 它将通过一条2Mbit ADSL线路,上行512Kbit。 所以它需要永远,并且可能容易失败。
我围绕rsync使用循环来做到这一点
while ! rsync -q -P --append source ftp_dest; do sleep 60#give the line a chance to reset (which happens automatically) done
这工作传输文件,即使滴(我以后检查MD5SUME以防万一)。 问题发生在rsync尝试设置目标文件权限的过程的最后,因为基础文件系统是NTFS,所以失败。
编辑:
我已经按照下面的build议添加了“–no-p –no-o –no-g –no-X –no-A”,但仍然出现以下错误
rsync: ftruncate failed on "/mnt/ftpremote/test.bin": Operation not permitted (1)
这不是一个问题,除了它导致我的循环继续下去。 有没有办法告诉rsync不要尝试任何权限设置? 我查看了手册页,没有发现任何东西(即使你告诉它不要设置权限,它的默认权限)。 我以为使用错误代码,但失败的权限设置的错误代码是23(根据手册页“由于错误的部分转移”),看起来这将是代码使用,如果线路丢弃了。
如果使用全部的--no-p --no-A --no-X --no-o --no-g --no-D都不起作用,那么也许你可以改变你的循环,使用md5sum的结果作为停止标准,即循环你的rsync,直到文件是相同的。