有没有一种干净的方式可以随时告诉rsync
用户停止? 两个选项:
- 告诉
rsync
停止传输当前文件,清除所有临时文件并退出; - 或者让
rsync
结束当前文件的传输然后停止。
通过Ctrl + C这样做确实停止中途转移并将临时文件留在那里,对吗?
编辑
即使使用--inplace
?最好的做法是什么?我正在使用rsync
并且--inplace
我必须快速完成,我该怎么说“可以结束此文件然后退出,或者立即退出,但清理您正在复制的此文件,这样您就不会留下损坏的内容(我不在乎它是否被删除,我可以稍后再次备份)”或类似的东西。
答案1
如果您用Ctrl+C它终止 rsync,它确实会在传输过程中停止它,但它不会在那里保留任何临时文件,除非使用该--partial
选项运行。
对于那些只想暂停 rsync 的人来说,如果你按下Ctrl+Z它,程序就会暂停。当你通过运行fg
或恢复它bg
时,rsync 将重复下载未完成的文件并继续下载其余文件。要查看所有当前暂停的程序,请运行jobs
关于--inplace
--inplace 的问题在于它在更新数据时不会创建新文件,而只会写入现有文件。如果在使用 --inplace 运行时按下 ctrl + c,并且它正在更新现有文件,它将留下一个未完成的文件而不会将其删除。此外,如果您只同步新文件而不更新现有文件,那么当您切断传输(使用 ctrl + c)时,它将留下一个未完成的文件而不会将其删除。请注意,我不建议将 --inplace 用于 OS 文件。您确实可以搞砸一些东西(因为它们经常更改)