在我的 cron 作业文件中,我定义了两个 cronjobs:
#Yo1 MAILTO="[email protected]"
*1****wget -O - -q "http://example.com/cron/test1.php">/dev/null 2>&1
#Yo1 MAILTO="[email protected]"
*15****wget -O - -q "http://example.com/cron/test2.php">/dev/null 2>&1
The PHP files are simple just sending mails with different subjects.
问题是两个 cronjobs 每分钟都在同一时间运行,但正如你所看到的,我希望它们在不同的时间运行。第一次 - 每分钟一次,第二次 - 每 15 分钟一次。
你能帮我解决这个问题吗?我不知道出了什么问题。
答案1
根据 的联机帮助页crontab(5)
,您可以指定列表 (0,15,30,45)
或者脚步 (*/15)
。
因此,您可以使用以下 crontab 条目:
#Yo1 MAILTO="[email protected]"
* 1 * * * * wget -O - -q "http://example.com/cron/test1.php">/dev/null 2>&1
#Yo1 MAILTO="[email protected]"
*/15 * * * * wget -O - -q "http://example.com/cron/test2.php">/dev/null 2>&1
更喜欢0,15,30,45
可移植性而不是*/15 * * * *
.
答案2
Cron 只允许至少一分钟。您可以做的是编写一个带有无限循环的 shell 脚本来运行您的任务,然后休眠 1 秒钟。这样,您的任务将或多或少地每 1 秒运行一次,具体取决于任务本身需要多长时间。