rsync 仅复制新文件,不复制更新?

rsync 仅复制新文件,不复制更新?

我想使用 rsync 从远程服务器复制文件。我想

  • 仅从服务器复制文件,不将任何文件推回。
  • 复制不存在的文件。如果远程文件较新,我不要想要复制它
  • 让它自动运行。每次都会提示我输入密码,我希望它由 cron 运行。那么如何在由 cron 执行的 bash 脚本中运行它?

答案1

第 1 点和第 2 点:如何指定要复制的内容最好通过阅读 rsync 来回答手册页。对于您来说,请特别查看 --ignore-existing 标志。

第 3 点:教程应该可以让您使用无密码 ssh 和 rsync。摘要:设置无密码 ssh 并使用“-e ssh”告诉 rsync 使用 ssh 而不是 rsh 来连接到远程主机。

答案2

对于第二部分,由于 pjz 回答了其余部分,我相信您可以使用 --ignore-existing 开关仅获取新文件。

http://www.samba.org/ftp/rsync/rsync.html

这告诉 rsync 跳过更新目标上已存在的文件(这不会忽略现有目录,否则将不会执行任何操作)。另请参阅 --existing。此选项是传输规则,而不是排除规则,因此它不会影响进入文件列表的数据,因此也不会影响删除。它只是限制接收方请求传输的文件。

当使用 --link-dest 选项进行备份的用户需要继续中断的备份运行时,此选项非常有用。由于 --link-dest 运行被复制到新的目录层次结构中(正确使用时),使用 --ignore established 将确保已处理的文件不会被调整(这避免了硬链接文件的权限更改)。这意味着此选项仅查看目标层次结构本身中的现有文件。

相关内容