【发布时间】:2018-02-18 02:08:27
【问题描述】:
我有一个 cron 作业,我想每隔一小时运行一次。在此之前,我会像每分钟一样运行它
* * * * * /var/www/html/cron.php
但我现在需要它每小时每秒钟运行一次。如何做到这一点?。
【问题讨论】:
标签: cron
我有一个 cron 作业,我想每隔一小时运行一次。在此之前,我会像每分钟一样运行它
* * * * * /var/www/html/cron.php
但我现在需要它每小时每秒钟运行一次。如何做到这一点?。
【问题讨论】:
标签: cron
crontab的格式如下
m h dom mon dow command
所以你可以这样做
0 * * * yourcommand
它将在每小时 00 分钟运行一次
【讨论】:
02 * * * yourcommand 一样在每小时的每一秒和每小时的第45 分钟像45 * * * yourcommand 一样运行?
如果您的操作系统是FreeBSD,您可以使用@every_second,例如:
@every_second /var/www/html/cron.php
对于其他系统,这可能有效:
每小时都有点事情:
@hourly /var/www/html/cron.php
或每 45 分钟一次:
*/45 * * * * /var/www/html/cron.php
string meaning
------ -------
@reboot Run once, at startup of cron.
@yearly Run once a year, "0 0 1 1 *".
@annually (same as @yearly)
@monthly Run once a month, "0 0 1 * *".
@weekly Run once a week, "0 0 * * 0".
@daily Run once a day, "0 0 * * *".
@midnight (same as @daily)
@hourly Run once an hour, "0 * * * *".
@every_minute Run once a minute, "*/1 * * * *".
@every_second Run once a second.
另外,请查看此参考:https://crontab.guru/
如果您使用的系统不支持@every_second,您可以尝试以下方式:
* * * * * /var/www/html/cron.php
* * * * * (sleep 30; /var/www/html/cron.php)
基本上,它们在同一时间(每分钟)运行,但其中一个会在启动前等待 30 秒,因此每 30 秒会调用一次 /var/www/html/cron.php。
【讨论】:
59 23 * * * /path/to/your/command 将在 2359 小时运行
对我来说,我能得到的唯一解决方案是:
2-59/* * * * *
翻译成简单的英语为:
从 2 到 59,每 60 分钟一次。
我几乎不知道 cron 语法,所以不确定这是唯一的方法还是至少是更好的方法之一。
【讨论】: