如何知道cron作业是否失败(运行Python命令)
当我运行这个命令时,输出的信息会被保存到 ok.txt 文件里:
/home/admin/virtualenvs/x.com/bin/python /home/admin/www/x.com/x/app/manage.py help | tee ok.txt
我有这个定时任务:
* * * * * /home/admin/virtualenvs/x.com/bin/python /home/admin/www/x.com/x/app/manage.py help | tee ok.txt
但是 ok.txt 文件里什么都没有保存。
当我查看定时任务的日志时:
> sudo grep CRON /var/log/syslog
May 10 22:16:01 localhost CRON[23397]: (admin) CMD (/home/admin/virtualenvs/x.com/bin/python /home/admin/www/x.com/x/app/manage.py help | tee ok.txt)
这里没有任何线索,我到底哪里出错了呢?谢谢大家的帮助。
2 个回答
0
首先,我注意到你的crontab语法不正确:
Example of job definition:
.---------------- minute (0 - 59)
| .------------- hour (0 - 23)
| | .---------- day of month (1 - 31)
| | | .------- month (1 - 12) OR jan,feb,mar,apr ...
| | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
| | | | |
* * * * * user-name command to be executed
你缺少用户名。
第二点,不要假设你的.bashrc文件会被加载。在cron中,你只能使用文件顶部定义的环境变量。所以如果你的脚本使用了你在bashrc中定义的某些内容,可能会导致它无法正确执行。
1
试试这个:
* * * * * /home/admin/virtualenvs/x.com/bin/python /home/admin/www/x.com/x/app/manage.py help > /tmp/ok.txt 2&>1
这样做的话,所有的输出(包括错误信息和正常输出)都会放到你的 ok.txt 文件里。