CLI 和 crontab 之间的 Rsync 不一致

CLI 和 crontab 之间的 Rsync 不一致

我想使用 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) 页面有一些与此类相关的选项。

相关内容