linux – 使用crontab进行作业调度,计算机在此期间关闭时会发生
我使用crontab安排了一些任务.
如果我的计算机在cron计划执行某些操作期间关闭或关闭,会发生什么? 每个错过的cron作业是否在计算机打开后运行,或者当天错过的作业被忽略了?如果错过的作业没有恢复,有没有办法配置cron,以便在计算机重新打开后运行错过的任务? 解决方法
当您的计算机关闭(或者cron守护程序未运行)时,将不会启动cron作业.
如果您在计算机关闭期间有想要运行的作业,请使用anacron.默认安装,请参阅“man anacron”,“man anacrontab”或文件/ etc / anacrontab以获取更多信息. 默认情况下,Ubuntu对crontab条目使用anacron: /etc/cron.daily /etc/cron.weekly /etc/cron.monthly 留下剩余的crontabs由主cron守护进程处理,具体如下: /etc/crontab /etc/cron.d /var/spool/cron 笔记 Anacron本身不作为守护进程运行,但依赖于系统启动脚本和cron本身来运行. 在我看的Ubuntu 8.04盒子上,/ etc / init.d / anacron在启动时运行,并且每天早上07:30再次由cron运行. /usr/share/doc/anacron/README.gz中的自述文件比联机帮助页中包含的信息略多一些. 例子 对于简单的“每日”,“每周”,“每月”作业,在上面的/etc/cron.{daily |weekly |monthly}目录之一中将脚本或符号链接放到脚本中. Anacron将负责每天/每周/每月运行它,如果您的计算机在“每周”脚本正常运行的那天关闭,它将在下次打开计算机时运行它们. 再举一个例子,假设你有一个脚本:/usr/local/sbin/maint.sh 并且您希望每三天运行一次,/ etc / crontab中的标准条目如下所示: # m h dom mon dow user command 0 0 */3 * * root /usr/local/sbin/maint.sh 如果您的计算机在本月3日00:00未开启,则该作业将在6日之前运行. 为了让工作在4号计算机关闭并且“错过”3号运行时运行,你可以在/ etc / anacrontab中使用它(不要忘记从/ etc / crontab中删除该行): # period delay job-identifier command 3 5 maint-job /usr/local/sbin/maint.sh 上述“5”的“延迟”意味着anacron将在运行此作业之前等待5分钟.这个想法是为了防止anacron在启动时立即解决问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |