我想使用 rsync 将我的主文件夹与 Ubuntu 11.10 机器上另一个驱动器上的“备份”副本同步。我希望它每 15 分钟发生一次。
如果我手动运行:
rsync -ar --delete /home/user/ /backupdrive/
在 CLI 中,它运行良好 - 一切都同步。
但我补充说:
*/15 * * * * rsync -ar --delete /home/user/ /backupdrive/
虽然sudo crontab -e
它添加了新文件,但不会删除旧文件。
有任何想法吗?
编辑
cron out.txt的前三行是:
sending incremental file list
./
IO error encountered -- skipping file deletion
在 CLI 版本中不会发生这种情况。
答案1
如果您在交互式 shell 中隐式地使用 SSH 身份验证来进行 rsync,则需要明确设置该身份验证以供在 cron 中使用。使用无需密码短语即可工作的 SSH 密钥进行锁定可能很棘手,因为理想情况下,人们希望限制 rsync 输出可以在远端结束的位置。
您可以使用 ~/.ssh/authorized_keys 文件来配置密钥,以便仅在有人连接到主机时运行给定的特定命令。如果可以强制守护进程模式下的 rsync 将所有内容放在 /.ssh/authorized_keys 文件“命令”条目中指定的目标目录下,它甚至会相当安全。rsyncd.conf(5) 页面有一些与此类相关的选项。