我的cron工作运行了好几次

时间:2015-01-30 11:00:06

标签: linux cron

在我的服务器上我有三个cron作业:

键入crontab -e我得到以下内容:

0 */24 * * * wget -qO /dev/null http://www.example.com/Users/mailNotify?token=1234 >> /var/log/cronLog.txt
0 */23 * * * sh /var/www/backup/backupScript
0 */23 * * * wget -qO /dev/null http://www.example.com/Users/off_score?token=1234 >> /var/log/cronLog.txt

这些cronjobs运行两次:

每天00.00和01.00。

有趣的是,它在上述每个小时都会运行所有三个工作。

有人能告诉我在创建这些时我做错了什么吗?

1 个答案:

答案 0 :(得分:1)

要让您的cronjobs在特定时间运行一次,您不应该使用*/,因为这将使您的cronjobs每23小时运行一次,这会导致以1运行然后再运行,23几个小时后,在0,因为cron计算在一天内每隔23小时运行一次。

要像你评论的那样在午夜运行所有这些,请像这样使用cron:

0 0 * * * wget -qO /dev/null http://www.example.com/Users/mailNotify?token=1234 >> /var/log/cronLog.txt
0 0 * * * sh /var/www/backup/backupScript
0 0 * * * wget -qO /dev/null http://www.example.com/Users/off_score?token=1234 >> /var/log/cronLog.txt

Cron定义:

# * * * * *  command to execute
 # │ │ │ │ │
 # │ │ │ │ │
 # │ │ │ │ └───── day of week (0 - 6) (0 to 6 are Sunday to Saturday, or use names; 7 is Sunday, the same as 0)
 # │ │ │ └────────── month (1 - 12)
 # │ │ └─────────────── day of month (1 - 31)
 # │ └──────────────────── hour (0 - 23)
 # └───────────────────────── min (0 - 59)

您告诉cron每天使用命令中的第3个*运行。