在 16.10 上使用 cron/anacron 在笔记本电脑上设置每日备份

在 16.10 上使用 cron/anacron 在笔记本电脑上设置每日备份

我有类似的问题关于 cron 和 anacron 的混淆(为 rsnapshot 设置备份计划),但也没有得到答复。

问题

我的问题是每天在笔记本电脑上进行备份。所以我的第一个想法是将其设置crontab

$ crontab -e
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:   
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# I guess as user I have no access to /var/log from this crontab, do I?
@daily ~/my-backups.sh >> ~/.log/my-backup.log

然后脚本my-backups.sh应该在每天午夜运行(0 0 * * *),对吗?

好的,阅读文档后,我发现了 anacron。但是由于脚本没有运行,问题就出现了。从文档中我了解到,如果计算机在应该执行日常例程时处于关闭状态,cron那么anacron它应该在启动时启动。但这也没有发生。

我需要做其他设置吗?(根据文档,我认为不需要这样做,而且可以立即使用,但这并没有发生。)

问题

我如何设置 cron/anacron 来执行每日脚本,并且如果计算机在执行时关闭,它应该在启动时或启动后一段时间运行该脚本。

使用版本cron.daily

cron.daily我按照建议修改了备份脚本。我的测试脚本是:

#!/bin/bash

date +%Y-%m-%d >> /var/log/backup.log

然后将其添加/etc/cron.daily为符号链接

sudo ln -s ~/bin/my-backup /etc/cron.daily/backup

我检查了一下,脚本和符号链接都具有执行权限。

然后,今天,我大约 9 点启动了我的计算机,并且第一个条目也/var/log/syslog大约在那个时间,但是没有任何迹象cron.daily

$ cat /var/log/syslog | grep cron
Feb 16 09:05:15 box cron[981]: (CRON) INFO (pidfile fd = 3)
Feb 16 09:05:15 box cron[981]: (CRON) INFO (Running @reboot jobs)
Feb 16 09:17:01 box CRON[4574]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Feb 16 10:17:01 box CRON[6453]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Feb 16 11:17:01 box CRON[6878]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Feb 16 12:17:01 box CRON[7310]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Feb 16 13:14:01 box CRON[7582]: (root) CMD (   test -x /etc/cron.daily/popularity-contest && /etc/cron.daily/popularity-contest --crond)
Feb 16 13:17:01 box CRON[7595]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Feb 16 14:17:02 box CRON[8134]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)

此外,最后一次执行 anacron 的时间是昨天

$ sudo cat /var/spool/anacron/cron.daily 
20170215

我检查了一下,我的脚本列在cron.daily

$ run-parts --test --report /etc/cron.daily
/etc/cron.daily/0anacron
/etc/cron.daily/apport
/etc/cron.daily/apt-compat
/etc/cron.daily/backup
/etc/cron.daily/bsdmainutils
/etc/cron.daily/cracklib-runtime
/etc/cron.daily/dpkg
/etc/cron.daily/google-chrome
/etc/cron.daily/google-talkplugin
/etc/cron.daily/logrotate
/etc/cron.daily/man-db
/etc/cron.daily/mlocate
/etc/cron.daily/passwd
/etc/cron.daily/popularity-contest
/etc/cron.daily/update-notifier-common
/etc/cron.daily/upstart

答案1

放置你的脚本/etc/cron.daily,你就会得到你想要的东西。

相关内容