rsync 失败后如何清理?

rsync 失败后如何清理?

我终止了本地“rsync -ah”进程。
它在目标目录中留下了“.abc.vmdk.zxivMN”等垃圾文件。
连续运行“rsync -ah”时,垃圾文件不会被删除。

详细信息:
我对正在同步的两个文件夹运行了 diff,并报告:“仅在 /mnt/archive1/documents/general:.abc.vmdk.zxivMN”

清理临时 rsync 文件的最佳方法是什么?

答案1

使用或指示rsync删除源上不存在的文件。请小心,仅当目标上没有源上不存在的合法文件时才使用此选项。--delete-during--delete-after

man rsync

当然,您可以随时手动删除检测到的文件diff...

答案2

我用

find -type f -iname ".*.*.??????" -ls

用于测试和

find -type f -iname ".*.*.??????" -delete

为了明确

答案3

当我尝试删除传输失败后 rsync 留下的临时文件时,我发现以下命令对我有用。

find vod-content/ -path '*/.*' -print0 | xargs -0 -r rm -v

它的作用是找到所有“隐藏”文件(以“。”字符开头的文件)并将它们传递给“rm”命令以删除它们。

显而易见已知问题关于上面的代码,如果您的内容包含隐藏文件,那么此命令也会删除这些文件。

答案4

我正在寻找更好的解决方案,但我能想到的唯一解决方案是将所有empty以 开头.并包含两个点的文件移动到垃圾文件夹(使用rm有点冒险):

find -type f -empty -iname ".*.*.*" | xargs -n 1 -d'\n' mv -v -t /tmp/

但这并不意味着万无一失。

相关内容