我已经设置了一个日常的anacron作业,它运行于/etc/cron.daily。从/etc/crontab中我看到它应该每天在06:25 (或者在启动/重新启动时)运行。
然而,当日期改变(00:00)和计算机运行时,我不想让anacron等到06:25。如果计算机已启动,我希望它在日期更改(00:00)时立即运行脚本。为运行anacron @hourly添加cron作业有意义吗?
发布于 2020-06-20 06:57:10
从Ubuntu19.10(可能更早)开始,anacron使用systemd计时器运行。
更改anacron执行时间的方法是使用以下命令:
sudo systemctl edit --full anacron.timer然后修改行:
OnCalendar=*-*-* 07..23:30正如在其他答案中所解释的,编辑/etc/crontab没有帮助。
25 7 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )操作符||之前的部分只测试是否安装了anacron,它不执行任何操作。只有当之前的部分没有成功完成时(惰性操作符评估),才会执行该部件,这意味着anacron没有安装。
编辑/etc/cron.d/anacron也无济于事。
30 7-23 * * * root [ -x /etc/init.d/anacron ] && if [ ! -d /run/systemd/system ]; then /usr/sbin/invoke-rc.d anacron start >/dev/null; fi安装systemd时,条件if [ ! -d /run/systemd/system ]会阻止脚本运行。
更改执行时间的正确方法是编辑systemd计时器,如开始时所解释的那样。
发布于 2012-01-16 17:12:47
我找到了怎么做的。
如果希望更改anacron的行为,以便在一天发生变化时立即执行(而不是等到7:30作为默认行为),请执行以下操作:
gksu gedit /etc/cron.d/anacron并添加最后2行(最后一行将每小时重新启动anacron ):
01 0 * * * root test -x /etc/init.d/anacron && /usr/sbin/invoke-rc.d anacron start >/dev/null
01 0 * * * root start -q anacron || :
@hourly root start -q anacron || :发布于 2013-04-02 12:40:24
哈立德的答复是不正确的。如果安装了anacron (默认情况下是这样),更改这一行不会产生效果:
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )如果存在anacron,test -x /usr/sbin/anacron将返回true,并阻止该行的下半部分运行。另一个答案(编辑/etc/cron.d/anacron)是正确的,因为这将启动anacron本身的配置。
https://askubuntu.com/questions/92322
复制相似问题