首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >日常作业执行的TIme

日常作业执行的TIme
EN

Ask Ubuntu用户
提问于 2012-01-02 22:55:22
回答 5查看 11.3K关注 0票数 10

我已经设置了一个日常的anacron作业,它运行于/etc/cron.daily。从/etc/crontab中我看到它应该每天在06:25 (或者在启动/重新启动时)运行。

然而,当日期改变(00:00)和计算机运行时,我不想让anacron等到06:25。如果计算机已启动,我希望它在日期更改(00:00)时立即运行脚本。为运行anacron @hourly添加cron作业有意义吗?

EN

回答 5

Ask Ubuntu用户

回答已采纳

发布于 2020-06-20 06:57:10

从Ubuntu19.10(可能更早)开始,anacron使用systemd计时器运行。

溶液

更改anacron执行时间的方法是使用以下命令:

代码语言:javascript
复制
sudo systemctl edit --full anacron.timer

然后修改行:

代码语言:javascript
复制
OnCalendar=*-*-* 07..23:30

什么不起作用

正如在其他答案中所解释的,编辑/etc/crontab没有帮助。

代码语言:javascript
复制
25 7    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

操作符||之前的部分只测试是否安装了anacron,它不执行任何操作。只有当之前的部分没有成功完成时(惰性操作符评估),才会执行该部件,这意味着anacron没有安装。

编辑/etc/cron.d/anacron也无济于事。

代码语言:javascript
复制
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计时器,如开始时所解释的那样。

票数 6
EN

Ask Ubuntu用户

发布于 2012-01-16 17:12:47

我找到了怎么做的。

如果希望更改anacron的行为,以便在一天发生变化时立即执行(而不是等到7:30作为默认行为),请执行以下操作:

代码语言:javascript
复制
gksu gedit /etc/cron.d/anacron

并添加最后2行(最后一行将每小时重新启动anacron ):

代码语言:javascript
复制
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 || :
票数 7
EN

Ask Ubuntu用户

发布于 2013-04-02 12:40:24

哈立德的答复是不正确的。如果安装了anacron (默认情况下是这样),更改这一行不会产生效果:

代码语言:javascript
复制
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本身的配置。

票数 7
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/92322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档