cron使用相同的python脚本(使用venv)多次,不同的参数只运行一次

时间:2014-06-16 18:00:38

标签: python cron

我安装了以下crontab,它使用4个不同的参数运行相同的命令,file1-file4:

1 12 * * * cd /home/me/scripts && /home/me/scripts/venv/bin/python /home/me/scripts/myscript.py file1.py 0 100
2 12 * * * cd /home/me/scripts && /home/me/scripts/venv/bin/python /home/me/scripts/myscript.py file2.py 101 200
3 12 * * * cd /home/me/scripts && /home/me/scripts/venv/bin/python /home/me/scripts/myscript.py file3.py 201 300
4 12 * * * cd /home/me/scripts && /home/me/scripts/venv/bin/python /home/me/scripts/myscript.py file4.py 301 400

我试图在中午之后让4分钟开始分钟。

这些形式如下:

m h * * * cd workingdir && get_the_right_virtualenv.py myscript.py arg1 arg2 arg3

然而,当我查看输出时,它实际上只运行第一个输出,而不是全部4 --- 2-4完全被忽略。

这是我得到的日志,这似乎表明脚本正确启动:

$ grep CRON /var/log/syslog
Jun 16 11:39:01 me CRON[25247]: (root) CMD (  [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete)
Jun 16 12:01:01 me CRON[25387]: (me) CMD (cd /home/me/scripts && /home/me/scripts/venv/bin/python /home/me/scripts/myscript.py file1.py 0 100)
Jun 16 12:01:40 me CRON[25385]: (CRON) info (No MTA installed, discarding output)
Jun 16 12:02:01 me CRON[25399]: (me) CMD (cd /home/me/scripts && /home/me/scripts/venv/bin/python /home/me/scripts/myscript.py file2.py 101 200)
Jun 16 12:03:01 me CRON[25413]: (me) CMD (cd /home/me/scripts && /home/me/scripts/venv/bin/python /home/me/scripts/myscript.py file3.py 201 300)
Jun 16 12:04:01 me CRON[25425]: (me) CMD (cd /home/me/scripts && /home/me/scripts/venv/bin/python /home/me/scripts/myscript.py file4.py 301 400)
Jun 16 12:09:01 me CRON[25446]: (root) CMD (  [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete)
Jun 16 12:17:01 me CRON[25514]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jun 16 12:39:01 me CRON[25785]: (root) CMD (  [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete)
Jun 16 13:06:01 me CRON[25423]: (CRON) info (No MTA installed, discarding output)
Jun 16 13:09:01 me CRON[25959]: (root) CMD (  [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete)

当我看到我的输出时,我发现只有第一个实际上是产生输出---其他的不是。是不是可以在cron中运行具有多个参数的相同脚本?我看到他们正在获得独立的PID,所以我没有怀疑脚本是否锁定,但看起来可能是这样?

如何让cron实际运行所有4个脚本?

0 个答案:

没有答案