Linux:Cron在什么时候进入cron.daily,cron.weekly,cron.monthly Run?
时间:2020-01-09 10:42:28 来源:igfitidea点击:
我在Dell poweredge服务器上使用Red Hat Enterprise Linux服务器6。
如何知道/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly中的条目何时在CentOS/RHEL v6.x/7.x和Debian/Ubuntu Linux服务器上运行?
在大多数现代Linux发行版中,您都使用cron。
它是执行计划命令的守护程序,即用于以天为单位指定的频率定期执行命令。
Anacron用于定期执行命令,频率以天为单位。
与cron不同,它不假定机器正在连续运行。
因此,它可以用于每天24小时不运行的机器上,以将常规作业控制为每日,每周和每月作业。
RHEL/CentOS Linux v6.x找出 /etc/cron.{daily,weekly,monthly}/ 的cron时间。
执行以下cat命令以查看文件:
# cat /etc/anacrontab
输出示例:
# /etc/anacrontab: configuration file for anacron # See anacron(8) and anacrontab(5) for details. SHELL=/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # the maximal random delay added to the base delay of the jobs # RANDOM_DELAY=45 # the jobs will be started during the following hours only START_HOURS_RANGE=3-22 #period in days delay in minutes job-identifier command 1 5 cron.daily nice run-parts /etc/cron.daily 7 25 cron.weekly nice run-parts /etc/cron.weekly @monthly 45 cron.monthly nice run-parts /etc/cron.monthly
其中:
START_HOURS_RANGE
:START_HOURS_RANGE
变量设置作业可以开始的时间范围。作业将仅在3-22(3 AM-10PM)小时内启动。- cron.daily将在凌晨3:05运行,即每天凌晨3:05运行。
- cron.weekly将在凌晨3:25运行,即每周凌晨3:25运行。
- cron.monthly将在凌晨3:45运行,即每月凌晨3:45运行一次。
了解RANDOM_DELAY环境变量
如果设置了RANDOM_DELAY环境变量,则将在0到RANDOM_DELAY分钟之间的随机值添加到作业的启动延迟中。
例如,设置为30的RANDOM_DELAY因此会在用户定义的延迟中随机增加0到30分钟之间。
对于以下条目,cron.daily的延迟将为5分钟+ RANDOM_DELAY:
RANDOM_DELAY=30 1 0 cron.daily nice run-parts /etc/cron.daily
关于较旧系统的注释,即RHEL/CentOS v5.x/v4.x
上面的示例显示了如何设置与/etc/crontab
中的先前设置类似的行为,它将仅在3:00和22:00之间启动所有常规作业。
换句话说,在较旧的系统上使用/etc/crontab
文件:
# cat /etc/crontab
Debian Linux v6.x找出/etc/cron。{每天,每周,每月} /
的cron时间。
使用以下命令:
# cat /etc/crontab
输出示例:
# /etc/crontab: system-wide crontab # Unlike any other crontab you don't have to run the `crontab' # command to install the new version when you edit this file # and files in /etc/cron.d. These files also have username fields, # that none of the other crontabs do. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) #
执行以下命令:
# cat /etc/anacrontab
输出示例:
# /etc/anacrontab: configuration file for anacron # See anacron(8) and anacrontab(5) for details. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # These replace cron's entries 1 5 cron.daily nice run-parts --report /etc/cron.daily 7 10 cron.weekly nice run-parts --report /etc/cron.weekly @monthly 15 cron.monthly nice run-parts --report /etc/cron.monthly
Ubuntu Linux LTS v12.04找出/etc/cron的cron时序。{每天,每周,每月} /
执行以下命令:
# cat /etc/crontab
输出示例:
# /etc/crontab: system-wide crontab # Unlike any other crontab you don't have to run the `crontab' # command to install the new version when you edit this file # and files in /etc/cron.d. These files also have username fields, # that none of the other crontabs do. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) #
- 每小时在上午1:17,上午2:17,下午3:17:1:17每小时运行cron.daily。
- 每天早上6:25运行一次cron.daily。
- 每天早上6:47每周运行一次cron。
- 每天早上6:42运行一次cron。每月一次。
如何配置和更改当前设置?
编辑/etc/anacrontab,执行:
# vi /etc/anacrontab
本示例说明如何仅在7:00和9:00之间开始所有常规作业。
添加了RANDOM_DELAY,最长为15分钟。
作业将在队列中运行。
一个完成后,下一个将开始。
# environment variables SHELL=/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin [email protected] RANDOM_DELAY=15 # Anacron jobs will start between 7 and 9 o'clock. START_HOURS_RANGE=7-9 # delay will be 5 minutes + RANDOM_DELAY for cron.daily 1 0 cron.daily nice run-parts /etc/cron.daily 7 0 cron.weekly nice run-parts /etc/cron.weekly @monthly 0 cron.monthly nice run-parts /etc/cron.monthly