cron rsync,如何重定向到桌面上的文件

cron rsync,如何重定向到桌面上的文件

我想定期将磁盘上的文件备份到备份服务器。由于我有很多文件(数百万),我想使用 rsync,这样只发送差异部分。

从 Ubuntu 18.04 终端,这将产生文件输出:

rsync -av  /Disk2/ 192.168.1.80:/mnt/jjg-z2/39x-disk2/ &> /home/john/Desktop/nightly_disk2_logs.txt

但是当我使用时crontab -e,对于每小时的 16 分钟标记(进行测试)

16 * * * * rsync -av  /Disk2/ 192.168.1.80:/mnt/jjg-z2/39x-disk2/ &> /home/john/Desktop

我在桌面上没有看到此文件的输出。在评论中,steeldriver 建议修复问题 1。现在crontab -e看起来像:

SHELL=/bin/bash
52 * * * * rsync -av  /Disk2/ 192.168.1.80:/mnt/jjg-14TB-z2/3970x-disk2/ &> /home/john/Desktop/nightly_disk2_logs.txt

问题 2:现在我在文件中有输出,但 rsync 有权限问题。crontab 的 SSH 密钥环境是否与终端的环境不同?以下是文件中的输出:

Permission denied, please try again.
Permission denied, please try again.
[email protected]: Permission denied (publickey,password).
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(235) [sender=3.1.2]

答案1

YouTube描述该过程。

我的要点:

  • ssh 密钥上没有密码
  • 在 crontab -e 的第一行添加 SHELL=/bin/bash
  • &> /home/john/Desktop/backup_disk2_logs.txt 创建一个日志文件以供查看

我的 crontab -e 看起来像:

SHELL=/bin/bash
00 * * * * rsync -av  /Disk2/ 192.168.1.80:/mnt/jjg-z2/disk2/ &> /home/john/Desktop/disk2_logs.txt

相关内容