我的 Crontab 作业中有以下两个条目,设置为于上午 10:00 开始。
工作#1
0,20 10 * * 1-5 ./运行_程序_A
任务 #2
0,20 10 * * 1-5 ./运行_程序_B
10:15,我检查了日志文件,发现只有程序 B 运行了。似乎程序 A 从未启动过。
如果我将程序 A 的启动时间设置为 10:30,它将被触发。我对 Crontab 不太熟悉,所以我希望您能解释一下。我是否必须确保所有作业都不是同时设置的?
先感谢您。
答案1
cron 肯定没有这样的限制。问题出在其他地方(例如,两个程序都使用了锁)。
答案2
以下几件事可能有助于追踪该问题:
- 检查 /var/log 中的 cron 日志
- 确保你从某个地方(可能是 cron 文件的所有者)的 cron 输出中获取邮件,因为那里可能有有趣的线索
- 将“./run_program_A”替换为“echo ./run_program_A”,只是为了看看它是否会被启动
- 放置“回显‘程序 A 运行’| mailx -s program_A[电子邮件保护]“在 run_program_A 中验证它是否正在运行
答案3
不,您不应该避免冲突,cron
应该完美地应对同时开始或重叠的工作。
这两个脚本是否有可能写入同一个日志文件,以至于一个脚本覆盖了另一个脚本的输出?
答案4
20 10 * * 1-5 ./运行程序_A > 运行程序_A.log
检查 10:20 之后的日志文件
ls -ltr run_program_A.log
如果文件是在 10:20 生成的,则问题出在脚本 run_program_A 上,而不是 cron 上
获取 cron 帮助
http://scripterworld.blogspot.com/2009/07/unix-crontab-configuration-with.html