linux – 使用crontab进行作业调度,计算机在此期间关闭时会发生什么?

前端之家收集整理的这篇文章主要介绍了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在启动时立即解决问题.

原文链接:/linux/402765.html

猜你在找的Linux相关文章