在我的服务器上我有三个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。
有趣的是,它在上述每个小时都会运行所有三个工作。
有人能告诉我在创建这些时我做错了什么吗?
答案 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个*
运行。