使用场景
如果进程存在,则不执行。不存在则执行。
错误的定时
*/21 7-20 * * * pgrep -f crawler/run.py || python3.6 crawler/run.py > /dev/null 2>&1
正确的写法
*/21 7-20 * * * pgrep -f crawler/run.py; [ $? == 0 ] && python3.6 crawler/run.py > /dev/null 2>&1
解释
在shell中直接使用 || 可以,但是在 crontab 中却一直都不行。不断测试才发现是 || 的问题,但 && 是可以在crontab中使用的。最终改成[ $? == 0 ] 替代。
本文介绍了一个关于CronTab定时任务的常见错误及其修正方法。通过对比错误和正确的定时任务脚本,详细解释了如何使用逻辑运算符来确保只有在进程不存在时才执行特定任务。
323

被折叠的 条评论
为什么被折叠?



