定时任务
我正在将 rsnapshot 与 cron 一起使用。这就是sudo crontab -l
我所看到的。
0 */4 * * * /usr/bin/rsnapshot hourly
30 3 * * * /usr/bin/rsnapshot daily
0 3 * * 1 /usr/bin/rsnapshot weekly
输出
我去检查备份文件夹以查看一切是否正常工作,但这是按时间排序的输出:
elijah@degas:~$ ls -lt /media/backup/
total 0
drwxrwxrwx 1 root root 0 May 30 04:00 hourly.1
drwxrwxrwx 1 root root 0 May 23 04:00 hourly.2
drwxrwxrwx 1 root root 0 May 17 04:00 hourly.3
drwxrwxrwx 1 root root 0 May 14 04:00 hourly.4
drwxrwxrwx 1 root root 0 May 13 04:00 hourly.5
drwxrwxrwx 1 root root 0 May 12 04:00 daily.0
drwxrwxrwx 1 root root 0 May 10 04:00 daily.1
drwxrwxrwx 1 root root 0 May 7 04:00 daily.2
drwxrwxrwx 1 root root 0 May 4 04:00 daily.3
drwxrwxrwx 1 root root 0 Apr 29 16:00 daily.4
drwxrwxrwx 1 root root 0 Apr 28 20:00 daily.5
drwxrwxrwx 1 root root 0 Apr 28 16:04 hourly.0
drwxrwxrwx 1 root root 0 Apr 28 12:21 daily.6
drwxrwxrwx 1 root root 0 Apr 27 10:09 weekly.1
drwxrwxrwx 1 root root 0 Apr 25 07:23 weekly.3
输出看起来几乎是随机的!为什么会发生这种情况?我以为另一台机器上的配置是相同的,而且似乎运行正常。
系统日志
elijah@degas:~$ cat /var/log/syslog.1 | grep cron
Jun 20 07:40:21 degas anacron[2795]: Job `cron.daily' terminated
Jun 20 07:40:21 degas anacron[2795]: Normal exit (1 job run)
Jun 20 08:17:01 degas CRON[3144]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Jun 20 09:17:01 degas CRON[3228]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Jun 20 10:17:01 degas CRON[4893]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Jun 20 11:17:01 degas CRON[8737]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Jun 20 12:17:01 degas CRON[10192]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Jun 20 13:17:01 degas CRON[11870]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Jun 20 14:17:01 degas CRON[12829]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Jun 20 15:17:01 degas CRON[13614]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Jun 20 15:54:28 degas crontab[14446]: (root) BEGIN EDIT (root)
Jun 20 15:55:27 degas crontab[14446]: (root) END EDIT (root)
Jun 20 15:55:29 degas crontab[14460]: (root) LIST (root)
Jun 20 16:17:01 degas CRON[14770]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Jun 20 16:44:04 degas crontab[14911]: (root) DELETE (root)
Jun 20 16:44:07 degas crontab[14913]: (root) LIST (root)
Jun 20 17:17:01 degas CRON[15713]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Jun 20 18:17:01 degas CRON[15842]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Jun 20 19:17:01 degas CRON[15928]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Jun 20 20:17:01 degas CRON[16023]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Jun 20 21:17:01 degas CRON[16110]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Jun 20 22:17:01 degas CRON[16212]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Jun 20 23:17:01 degas CRON[16300]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Jun 21 00:00:01 degas CRON[16372]: (root) CMD (invoke-rc.d atop _cron)
Jun 21 00:17:01 degas CRON[16437]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Jun 21 01:17:01 degas CRON[16525]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Jun 21 02:17:01 degas CRON[16612]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Jun 21 03:17:01 degas CRON[16701]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Jun 21 04:17:01 degas CRON[16798]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Jun 21 05:17:01 degas CRON[16886]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Jun 21 06:17:01 degas CRON[16974]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Jun 21 06:25:01 degas CRON[16988]: (root) CMD (test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ))
Jun 21 07:17:01 degas CRON[17061]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Jun 21 07:30:01 degas CRON[17083]: (root) CMD (start -q anacron || :)
Jun 21 07:30:01 degas anacron[17086]: Anacron 2.3 started on 2016-06-21
Jun 21 07:30:01 degas anacron[17086]: Will run job `cron.daily' in 5 min.
Jun 21 07:30:01 degas anacron[17086]: Jobs will be executed sequentially
Jun 21 07:35:01 degas anacron[17086]: Job `cron.daily' started
Jun 21 07:35:01 degas anacron[17099]: Updated timestamp for job `cron.daily' to 2016-06-21
快照测试
elijah@degas:~$ /usr/bin/rsnapshot -t hourly
echo 23633 > /var/run/rsnapshot.pid
/bin/rm -rf /media/backup/hourly.5/
mv /media/backup/hourly.4/ /media/backup/hourly.5/
mv /media/backup/hourly.3/ /media/backup/hourly.4/
mv /media/backup/hourly.2/ /media/backup/hourly.3/
mv /media/backup/hourly.1/ /media/backup/hourly.2/
/bin/cp -al /media/backup/hourly.0 /media/backup/hourly.1
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
--exclude=/var/ --exclude=/space/ --exclude=/nfs/ --exclude=/media/ \
--exclude=/proc/ --exclude=/sys/ --exclude=/dev/ --exclude=/tmp/ \
--exclude=/cdrom/ --exclude=media/backup /. \
/media/backup/hourly.0/Backup
touch /media/backup/hourly.0/
答案1
此原始建议仅适用于基于 Debian 的发行版:
您显示的两个crontab
片段并不相同crontab
。因此,您的作业运行两次(一次来自/etc/cron.d/rsnapshot
,一次来自crontab -l
)。
删除一组,例如使用sudo crontab -r
,它将开始正常工作。
下一个建议是确保未sync_first
设置在/etc/rsnapshot.conf
文件中。 (或者如果是,那就是0
。)否则,虽然会发生 rsnapshot 目录的循环,但如果没有明确的rsnapshot sync
命令,实际上不会进行备份。
答案2
经过一些扩展讨论看来文件系统可能已损坏。例如,rm -rf
作为根用户在正常的文件树上失败。
卸载文件系统后,fsck
将其识别为 NTFS。
令人沮丧的是,我看到 NTFS 在其他基于 Linux 的平台上因rsnapshot
.没有任何足够可重复的错误可以提交,但一周的时间rsnapshots
通常会损坏文件系统。
我的建议是将 NTFS 文件系统替换为基于 Linux 的系统本机的文件系统,例如 ext4。顺便说一句,如果必须从 Windows 平台访问备份,我已经很好地利用了extN 文件系统的 Ext2FSD 实用程序和驱动程序(也在来源锻造)。