cron作业设置为不同的时间,但同时执行


1

我有一个文件,我使用以下作业加载到crontab中,crontab -l报告以下内容:

# runs daily at 2:00 am and 2:05 am
30 12 * * * /usr/bin/wget -q -O temp.txt http://<host-url>/cronjob/script1.php 35 12 * * * /usr/bin/wget -q -O temp.txt http://<host-url>/cronjob/script2.php

输出上面的清洁版

# runs daily at 2:00 am and 2:05 am

30 12 * * * /usr/bin/wget -q -O temp.txt http://<host-url>/cronjob/script1.php 
35 12 * * * /usr/bin/wget -q -O temp.txt http://<host-url>/cronjob/script2.php

我遵循这个网站的规则:

如何设置Cron作业

我最初遇到的问题是在crontab列表中显示两个作业。我通过在一行中设置所有作业解决了这个问题,详见以下部分:

处理来自Crontab的错误消息

一旦我正确列出了两个作业,我就测试了它们是否正确执行了。在12:31我注意到两个脚本都执行了,对于script1和script2都修改了mysql数据库中的不同表。

为什么会这样?如何安排它以便script2在其自己的预定时间执行?

我意识到这不是一个很大的问题,但我很想知道。

谢谢您的帮助。


“如果评论和代码不一致,两者都可能出错”......你的crontab中的评论说凌晨2点和凌晨2点05分。修复或删除该评论。也就是说,我从来没有见过cron在错误的时间运行。检查syslogs以查看cron是否记录执行的内容和时间。你也说“通过在一条线上设置所有工作来解决这个问题”;你确定crontab在显示时被修改了吗?
wurtel

评论不影响它,我只是这样离开,这样我就可以回想起我希望工作有效完成的时间。我有一个我即将发布的解决方案。
mcv

Answers:


1

我打开了要编辑的cron作业:

crontab -e

并使用Nano进行编辑。

我在作业之间添加了一个新的行字符,这解决了这个问题。

因此,最初创建的文件是在Windows机器上完成的,该机器是FTP到服务器。我检查了文件,它是在没有扩展名的Notepad ++中创建的,也尝试使用.TXT的扩展名。 EOL字符设置为UNIX。

无论情况如何,在加载文件时,两个作业都在第一个预定时间执行。我使用上面的编辑修改了cron作业。 cron作业在预定时间执行(相隔5分钟)。


有趣!所以这是文件本身的问题。 +1发现它。
fedorqui
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.