我有一个 cron 任务
6,36 * * * * python /usr/local/news.py >> /var/log/newlog
它应该每小时的第 6 分钟和第 36 分钟运行一次。
但对于某些系统,每次运行此任务 4 个进程/次。此任务是更新数据库,当三个进程同时更新数据库时会导致问题。
我在 /var/spool/cron/root 中列出了 4 个任务,这是其中一个任务
这里可能出了什么问题?
谢谢
编辑:
10月9日 20:06:01 在线 CROND[7882]: (root) CMD (python /usr/local/news.py >> /var/log/newslog) 10月9日 20:06:01 在线 CROND[7883]: (root) CMD (python /usr/local/news.py >> /var/log/newslog) 10月9日 20:06:01 在线 CROND[7888]: (root) CMD (python /usr/local/news.py >> /var/log//newslog) 10月9日 20:06:01 在线 CROND[7890]: (root) CMD (python /usr/local/news.py >> /var/log//newslog)
答案1
以下命令的结果是什么?如果列出多个数字,则 cron 运行多次,这可能会导致此问题。
pgrep -l cron
答案2
你说的‘我在 /var/spool/cron/root 中列出了 4 个任务’是指:
“我的 root crontab 中有 4 行内容,全都是相同的。”?
请粘贴“crontab -l”的输出。如果它看起来像:
6,36 * * * * python /usr/local/news.py >> /var/log/newlog
6,36 * * * * python /usr/local/news.py >> /var/log/newlog
6,36 * * * * python /usr/local/news.py >> /var/log/newlog
6,36 * * * * python /usr/local/news.py >> /var/log/newlog
这绝对是问题所在 :0
答案3
看起来两次运行的语法略有不同。您可以检查 /etc/crontab 和 /etc/cron.d 以确认那里没有该命令的副本吗?