cron.daily
(和.weekly
和.hourly
)中的条目何时运行,并且可以配置?我没有找到确切的答案,希望有一个答案。
我正在运行RHEL5和CentOS 4,但对于其他发行版/平台也将非常有用。
#1 楼
对于发行版,您提到:在CentOS 5.4上(对于RHEL5应该是相同的)
grep run-parts /etc/crontab
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
所以cron.daily在04:02 am运行。
与CentOS 4.8相同
评论
这背后有什么原因吗?我只能假设这是服务器上最安静的时间。
– Pixel开发人员
2010年5月13日下午14:55
@它什么时候在ubuntu中运行?你能告诉我如何检查吗?我无法理解命令输出
– Narendra Jaggi
16年1月2日,11:16
@NarendraJaggi“ run-parts”命令的意思是“运行此文件夹中的所有内容”。之所以使用cron.daily等文件夹,是因为存在cron作业来执行这些目录上的运行部件。因此,grep run-parts / etc / crontab只是找到有关何时为每个目录调用run-parts的说明。
–乔丹·瑞特(Jordan Reiter)
16年1月21日在15:57
对于CentOS 6或更高版本,这不再是有效答案,向下滚动更多内容。
–lzap
16-10-24在7:53
在CO 7上的/ etc / crontab中找不到它
– snh_nl
9月1日15:40
#2 楼
从手册页中: Cron also searches for /etc/anacrontab
/etc/anacrontab
在我的系统中(Fedora 12):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
另请参阅
man anacrontab
评论
CentOS 6就是这种情况。谢谢。
–mbrownnyc
13年7月22日在15:59
这意味着每“ 1”天凌晨5点吗?对不起,但这无济于事。
– elysch
16年5月13日在16:50
@elysch让我重复我的答案的最后一行:另请参阅“ man anacrontab”
–leonbloy
16年5月13日在17:53
这里有很好的解释。基本上,anacron没有固定的启动时间,而是根据上一个进程的运行时间(指定的延迟)启动该进程。如果在应该运行该进程的情况下关闭了计算机,则它将在指定的延迟(没有特殊范围+随机延迟,请参阅@spechal的回答)之后在重新启动计算机时启动该进程。
–storm_m2138
16年7月14日在17:40
@mbrownnyc也是CentOS-7
–特雷弗·博伊德·史密斯(Trevor Boyd Smith)
18年1月1日在17:30
#3 楼
对于CentOS 6,您需要grep / etc / anacrontab,如果服务器/笔记本电脑/ dekstop / etc已关闭,则答案会有所不同。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
,在凌晨3点至晚上10点**(重新启动后和计算机启动5分钟后^^)之间,运行/etc/cron.daily。如果没有重新启动,则该作业应在3:05 AM++上运行。
** As defined by START_HOURS_RANGE
^^ As defined by FIELD_TWO (i.e. the 5 after the 1 in the cron.daily line)
++ plus a random time between 0 and 45 minutes as defined by RANDOM_DELAY
参考:http://linux.die.net/man/5/anacrontab
#4 楼
对于SuSE系统(特别是SLES 11.1和openSuSE 10.3),/ etc / cron.daily脚本的每日运行时间由/ etc / sysconfig / cron文件中设置的DAILY_TIME变量的值控制。如果未设置DAILY_TIME变量,则默认为:(上次启动时间+ 15分钟)。
评论
多谢! SuSE对我来说并不透明,我感谢您的回答。
–dr0i
16年8月2日在8:18
与OpenSUSE相同-默认值为“”,即。最后一次启动后四分之一。此方法适用于台式计算机,这些台式计算机在不需要时通常会关闭。
– Jasio
12月17日8:25
#5 楼
在Ubuntu上,您将在/ etc / crontab文件中找到该文件的配置位置。我猜这在RH和Centos上是类似的。评论
这是Ubuntu Lucid 10.04 LTS的正确文件。我的默认设置是cron.daily的上午6:25。
–geekQ
2011年8月8日13:46
在Ubuntu 15.04上仍设置为上午6:25。但是我注意到cron在开始工作时必须插入一些随机性。通过查看我日常工作创建的文件的时间戳,我发现它有时运行于6:26,而另一些则运行于8:04。
–Stéphane
15年5月6日在10:51
仍然在Ubuntu 16.04上的上午6:25设置-每小时凌晨17点。每天早上6:25。每周星期六上午6:47。每月的第一天上午6:52。
–WinEunuuchs2Unix
17年1月1日在11:47
#6 楼
CentOS6.x / RedHat6.x默认安装软件包cronie-anacron。您必须:yum安装cronie-noanacron
yum擦除cronie-anacron
然后您现在拥有/etc/cron.d/dailyjobs来配置最佳配置为您的每日,每周和每月工作安排时间。
评论
如果安装了anacron,您是否只能按照此处的其他说明编辑/ etc / anacrontab而不是将其卸载?
–cincodenada
13年2月21日在20:18
@cincodenada这不是Daniel Stantos的建议。
–mikemaccana
13年5月14日在16:28
#7 楼
我使用Slackware(14.0),并且没有/etc/crontab
。另外,anacron
也不是发行版的一部分。我系统上的解决方案就像以根用户身份运行
crontab -l
一样简单:root@flea:~# crontab -l
# If you don't want the output of a cron job mailed to you, you have to direct
# any output to /dev/null. We'll do this here since these jobs should run
# properly on a newly installed system. If a script fails, run-parts will
# mail a notice to root.
#
# Run the hourly, daily, weekly, and monthly cron jobs.
# Jobs that need different timing may be entered into the crontab as before,
# but most really don't need greater granularity than this. If the exact
# times of the hourly, daily, weekly, and monthly cron jobs do not suit your
# needs, feel free to adjust them.
#
# Run hourly cron jobs at 47 minutes after the hour:
47 * * * * /usr/bin/run-parts /etc/cron.hourly 1> /dev/null
#
# Run daily cron jobs at 4:40 every day:
40 4 * * * /usr/bin/run-parts /etc/cron.daily 1> /dev/null
#
# Run weekly cron jobs at 4:30 on the first day of the week:
30 4 * * 0 /usr/bin/run-parts /etc/cron.weekly 1> /dev/null
#
# Run monthly cron jobs at 4:20 on the first day of the month:
20 4 1 * * /usr/bin/run-parts /etc/cron.monthly 1> /dev/null
#8 楼
在我的Ubuntu 9.10系统上的/etc/anacrontab
中: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
#9 楼
就Solaris而言,没有这种功能。只需将常规crontab条目用于日常任务即可。#10 楼
OpenSuse 42.x更新:/ etc / crontab显示文件/ usr / lib / cron / run-crons应该每15分钟运行一次。
/ usr / lib / cron / run-crons(具有可能的代码行)又在/ etc / sysconfig / cron中寻找名为DAILY_TIME的变量。
文件显示;
/>
# At which time cron.daily should start. Default is 15 minutes after booting
# the system. Example setting would be "14:00".
# Due to the fact that cron script runs only every 15 minutes,
# it will only run on xx:00, xx:15, xx:30, xx:45, not at the accurate time
# you set.
DAILY_TIME=""
将其设置为所需时间,然后通过以下方式重新启动cron;
systemctl restart cron.service
评论
在NetBSD上,每天,每周,每月cronjob的时间都在root的crontab中设置。如果问题被编辑为更通用,则该问题将更有用。至少使该问题适用于任何版本的redhat,centos发行版,而不是仅适用于版本4和5(未广泛使用并且属于“生产终止”(类似于寿命终止))。
@TrevorBoydSmith-这个问题是在近8年前提出的。随时询问更新的版本。但是RHEL 6甚至在2010年4月甚至不存在:access.redhat.com/articles/3078#RHEL6
@warren我的目的不是批评,而是总体上改善问题和stackoverflow。 (我知道在提出问题时RHEL 6不存在。因为该问题现在获得了太多支持,所以可以更通用一些。)
@TrevorBoydSmith ..已经有CentOS / RHEL 6的答案了:) ...如果您有什么想法,我很乐意批准您的良好编辑。继续对您想到的问题进行建议的编辑