我正在尝试运行 rsync,它应该将不完整的文件保留在给定的 --temp-dir 中,并且如果连接由于某种原因断开,也不应该删除不完整的文件。
rsync --human-readable --archive --info=progress2 --relative --no-inc-recursive --dirs --append-verify --partial --temp-dir=.rsync_temp /path/to/myfile.tar.lz4 <dest-ip>:/data/
如果我由于某种原因中断命令并重新启动它,则会发现它没有使用以前运行的不完整文件。
我有大量文件,大小从 2GB 开始。因此,使用 --partial 来恢复不完整的文件是必不可少的。此外,不完整的文件在目标文件夹中不可见也是必要的,因此我使用了 --temp-dir。
有什么线索吗?
答案1
我遇到了同样的问题,并使用 解决了它--no-whole-file
。因此,尽管使用在远程计算机上执行的 SSH 连接rsync --server
,但 rsync 似乎有时会禁用默认的增量传输算法,令我惊讶的是¹该算法是 的要求--partial
。
另一个罪魁祸首可能是远程计算机上缺少临时目录,因为尽管--partial-dir
自动创建了丢失的目录,但该--temp-dir
选项却不会执行此操作。
¹ 过去我认为--partial
使用目标文件并简单地附加丢失的数据。但现在我认为它首先使用部分目标文件进行增量传输比较,然后将丢失的数据写入新的临时文件以最终合并两者。