我有一个脚本,它将从特定目录(带有rsync
)上传文件到服务器,但同时另一个脚本将从服务器中提取文件(也带有rsync
和带有--delete
标志)。
这意味着,当我添加大量文件并rsync
正在上传文件时和这下载脚本也正在运行,一些文件(尚未上传到服务器)被删除。
有什么方法可以防止这种情况发生?我希望我的上传脚本和下载脚本同时工作。
答案1
听起来你正在尝试执行双向同步,在这种情况下,最好使用专门为此设计的工具,例如齐奏。
答案2
使上传工作原子化。例如,您可以执行 rsync 上传到临时目录,并在完成后用 mv 替换工作目录。另一个可以尝试的方法是使用版本控制来管理文件。我推荐 git。
答案3
如果我正确理解了这个问题,你可以简单地排除部分文件下载。这也能确保它们不会被删除。检查--temp-dir
rsync 手册页中的开关,了解如何指定在文件上传时使用的临时目录。
如果你想上传和下载文件同时,那么您将需要创建自己的考虑到该要求的 rsync 版本。