![cron 任务设置为不同的时间,但同时执行](https://linux22.com/image/1423203/cron%20%E4%BB%BB%E5%8A%A1%E8%AE%BE%E7%BD%AE%E4%B8%BA%E4%B8%8D%E5%90%8C%E7%9A%84%E6%97%B6%E9%97%B4%EF%BC%8C%E4%BD%86%E5%90%8C%E6%97%B6%E6%89%A7%E8%A1%8C.png)
我有一个文件,我将它与以下作业一起加载到 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 分钟)。