Devator Asked: 2012-05-22 07:09:22 +0800 CST2012-05-22 07:09:22 +0800 CST 2012-05-22 07:09:22 +0800 CST 阻止 rsync 删除正在上传的文件 772 我有一个脚本,可以将文件从特定目录(带有rsync)上传到服务器,但与此同时,另一个脚本将从服务器中提取文件(也带有rsync和--delete标志)。 这意味着,当我向其中添加大量文件并且正在rsync上传文件并且下载脚本也在运行时,一些文件(尚未上传到服务器)被删除。 有什么办法可以防止这种情况发生吗?我希望我的上传脚本和下载脚本同时工作。 linux rsync 3 个回答 Voted Best Answer mgorven 2012-05-22T10:43:25+08:002012-05-22T10:43:25+08:00 听起来您正在尝试执行双向同步,在这种情况下,最好使用专门为此设计的工具,例如unison。 DukeLion 2012-05-22T07:15:00+08:002012-05-22T07:15:00+08:00 使您的上传工作原子化。例如,您可以将 rsync 上传到临时目录,并在完成时用 mv 替换工作目录。另一件可以尝试的事情是使用版本控制来管理您的文件。我会推荐 git。 Oliver 2012-05-22T10:17:58+08:002012-05-22T10:17:58+08:00 如果我正确理解了这个问题,您可以简单地排除部分文件的下载。这也将确保它们不会被删除。检查--temp-dirrsync 手册页中的开关,了解如何指定上传文件时将使用的临时目录。 如果您希望能够同时上传和下载一个文件,那么您将需要创建您自己的 rsync 版本以考虑该要求。
听起来您正在尝试执行双向同步,在这种情况下,最好使用专门为此设计的工具,例如unison。
使您的上传工作原子化。例如,您可以将 rsync 上传到临时目录,并在完成时用 mv 替换工作目录。另一件可以尝试的事情是使用版本控制来管理您的文件。我会推荐 git。
如果我正确理解了这个问题,您可以简单地排除部分文件的下载。这也将确保它们不会被删除。检查
--temp-dir
rsync 手册页中的开关,了解如何指定上传文件时将使用的临时目录。如果您希望能够同时上传和下载一个文件,那么您将需要创建您自己的 rsync 版本以考虑该要求。