阻止 rsync 删除正在上传的文件

阻止 rsync 删除正在上传的文件

我有一个脚本,它将从特定目录(带有rsync)上传文件到服务器,但同时另一个脚本将从服务器中提取文件(也带有rsync和带有--delete标志)。

这意味着,当我添加大量文件并rsync正在上传文件时下载脚本也正在运行,一些文件(尚未上传到服务器)被删除。

有什么方法可以防止这种情况发生?我希望我的上传脚本和下载脚本同时工作。

答案1

听起来你正在尝试执行双向同步,在这种情况下,最好使用专门为此设计的工具,例如齐奏

答案2

使上传工作原子化。例如,您可以执行 rsync 上传到临时目录,并在完成后用 mv 替换工作目录。另一个可以尝试的方法是使用版本控制来管理文件。我推荐 git。

答案3

如果我正确理解了这个问题,你可以简单地排除部分文件下载。这也能确保它们不会被删除。检查--temp-dirrsync 手册页中的开关,了解如何指定在文件上传时使用的临时目录。

如果你想上传和下载文件同时,那么您将需要创建自己的考虑到该要求的 rsync 版本。

相关内容