我有一个文件,我将它与以下作业一起加载到 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
我遵循了此网站的规则:
我最初遇到一个问题,无法将两个作业都显示在 crontab 列表中。我通过将所有作业都设置在一行上解决了该问题,如以下部分所述:
处理 Crontab 的错误消息
正确列出两个作业后,我进行了测试以验证它们是否正确执行。在 12:31,我注意到两个脚本都执行了,因为 script1 和 script2 都修改了 mysql 数据库中的不同表。
为什么会发生这种情况?我该如何安排它以便 script2 在其自己的预定时间执行?
我意识到这不是什么大问题,但我很好奇。
谢谢您的帮助。
答案1
我使用以下命令打开了要编辑的 cron 作业:
crontab -e
并使用 Nano 进行编辑。
我在作业之间添加了一个新行字符,这解决了这个问题。
因此,最初创建的文件是在通过 FTP 传输到服务器的 Windows 计算机上完成的。我检查了该文件,它是在 Notepad++ 中创建的,没有扩展名,也尝试过使用 .TXT 扩展名。EOL 字符设置为 UNIX。
无论哪种情况,加载文件时,两个作业都会在第一个预定时间执行。在我使用上面的编辑修改 cron 作业之后。cron 作业会在预定时间执行(即相隔 5 分钟)。