在我的bash脚本中有一行如下所示
echo "2 30 * * * * /usr/bin/test.sh" >> /var/cron/crontabs/root
这显然是向crontab添加了一个作业,但由于第二个值应该在0-23之间。在这种情况下会发生什么?
答案 0 :(得分:1)
什么都没有。 cron
拒绝运行该行(不是因为0-23问题),而是因为它是一个无效的时间规范,试图在正确{{1}时包含 6 参数}条目 5 。
cron
无论值如何,以下内容都不起作用:
crontab entry format:
* * * * * command_to_execute
| | | | |
| | | | +- day of week (0-6) (Sunday = 0)
| | | +--- month (1-12)
| | +----- day of month (1-31)
| +------- hour (0-23)
+--------- minute (0-59)
答案 1 :(得分:0)
没有保证,因为这是非法的。 crontab(5)
手册页中的这一措辞表明它将被忽略:
请注意,这意味着不存在的时间,例如"缺少时间"在夏令时转换期间,永远不会匹配,导致在“失踪时间”期间安排的工作"不要跑。同样,多次出现的次数(同样,在夏令时转换期间)将导致匹配的作业运行两次。
但是,它提供的示例是更合理的情况(例如,您指定在当地时间凌晨2:30在春季的DST日运行命令,当时没有凌晨2:30)。该手册页还说小时必须是0-23,并且你违反了这个规则。可能cron(8)
会在系统日志中抱怨,或者崩溃,或者做任何其他事情。它也有可能被忽略,而且这种行为可能因Unix风格而异。
简而言之,您处于未知领域。实际上,它可能不会彻底崩溃,因为守护进程不应该崩溃。但除此之外,你几乎没有任何保证。