- 论坛徽章:
- 1
|
本帖最后由 plumdavid 于 2014-12-30 17:50 编辑
在使用crontab设置定时任务时,发现一个奇怪的现象,有个定时任务必须加上错误输出重定向命令才能正常运行,否则不成功。
具体情况见以下说明:
在centos中crontab设置的定时任务代码如下:
- 0,30 * * * * sh /home/sysuser/shell/subsh/uns/main.sh #uns test
- 5,20,35,50 * * * * /usr/bin/php /home/sysuser/shell/subsh/uns/main.php #uns test
- 10 1 * * * /usr/bin/php /home/sysuser/shell/subsh/uns/analyze_day.php
- 10 1 * * 1 /usr/bin/php /home/sysuser/shell/subsh/uns/analyze_week.php
- 10 2 1 * * /usr/bin/php /home/sysuser/shell/subsh/uns/analyze_month.php
复制代码 查看结果:
第1、2行运行成功;
第3行运行失败;
第4、5行因无数据未测试。
查看log日志,crond服务提示第3行已运行:- Dec 30 01:10:01 localhost CROND[1002]: (sysuser) CMD (/usr/bin/php /home/sysuser/shell/subsh/uns/analyze_day.php)
复制代码 将第3行加上错误输出重定向,运行成功,代码如下:- 10 1 * * * /usr/bin/php /home/sysuser/shell/subsh/uns/analyze_day.php > /home/sysuser/tmp/crontab/log_day.txt 2>&1
复制代码 若将重定向的错误输出参数2>&1去掉,则运行失败,代码如下:- 10 1 * * * /usr/bin/php /home/sysuser/shell/subsh/uns/analyze_day.php > /home/sysuser/tmp/crontab/log_day.txt
复制代码 在shell下直接运行第3行,不需要加上重定向,也能成功,代码如下(-bash-4.1$ 是提示符):- -bash-4.1$ /usr/bin/php /home/sysuser/shell/subsh/uns/analyze_day.php
复制代码 上面运行的是定时采集数据服务器,共部署9台,同样的运行环境,其它8台服务器,第3行代码都没有加错误重定向命令,运行成功,只有此台服务器出现此现象。因出问题的服务器部署的比其它服务器早,我估计系统管理员在部署时不经意做了改动,而他自己并不知道,所以想向大虾给予指导。
附:log_day.txt 部分内容:- PHP Notice: Undefined index: 1401 in /home/sysuser/shell/subsh/uns/analyze_day.php on line 461
- PHP Notice: Undefined index: 1401 in /home/sysuser/shell/subsh/uns/analyze_day.php on line 475
- PHP Notice: Undefined index: 1401 in /home/sysuser/shell/subsh/uns/analyze_day.php on line 489
- PHP Warning: Division by zero in /home/sysuser/shell/subsh/uns/analyze_day.php on line 510
- PHP Notice: Undefined index: 1401 in /home/sysuser/shell/subsh/uns/analyze_day.php on line 517
- PHP Notice: Undefined index: 1402 in /home/sysuser/shell/subsh/uns/analyze_day.php on line 503
- PHP Notice: Undefined index: 1402 in /home/sysuser/shell/subsh/uns/analyze_day.php on line 517
- PHP Notice: Undefined index: 1442 in /home/sysuser/shell/subsh/uns/analyze_day.php on line 503
- PHP Notice: Undefined index: 1442 in /home/sysuser/shell/subsh/uns/analyze_day.php on line 517
- PHP Notice: Undefined index: 1443 in /home/sysuser/shell/subsh/uns/analyze_day.php on line 503
- PHP Notice: Undefined index: 1443 in /home/sysuser/shell/subsh/uns/analyze_day.php on line 517
- PHP Notice: Undefined index: 1444 in /home/sysuser/shell/subsh/uns/analyze_day.php on line 461
- PHP Notice: Undefined index: 1444 in /home/sysuser/shell/subsh/uns/analyze_day.php on line 475
- PHP Notice: Undefined index: 1444 in /home/sysuser/shell/subsh/uns/analyze_day.php on line 489
- PHP Warning: Division by zero in /home/sysuser/shell/subsh/uns/analyze_day.php on line 510
- PHP Notice: Undefined index: 1444 in /home/sysuser/shell/subsh/uns/analyze_day.php on line 517
- PHP Notice: Undefined index: 1445 in /home/sysuser/shell/subsh/uns/analyze_day.php on line 461
- PHP Notice: Undefined index: 1445 in /home/sysuser/shell/subsh/uns/analyze_day.php on line 475
- PHP Notice: Undefined index: 1445 in /home/sysuser/shell/subsh/uns/analyze_day.php on line 489
- PHP Warning: Division by zero in /home/sysuser/shell/subsh/uns/analyze_day.php on line 510
- PHP Notice: Undefined index: 1445 in /home/sysuser/shell/subsh/uns/analyze_day.php on line 517
- PHP Notice: Undefined index: 1446 in /home/sysuser/shell/subsh/uns/analyze_day.php on line 461
- PHP Notice: Undefined index: 1446 in /home/sysuser/shell/subsh/uns/analyze_day.php on line 475
- PHP Notice: Undefined index: 1446 in /home/sysuser/shell/subsh/uns/analyze_day.php on line 489
- PHP Warning: Division by zero in /home/sysuser/shell/subsh/uns/analyze_day.php on line 510
- PHP Notice: Undefined index: 1446 in /home/sysuser/shell/subsh/uns/analyze_day.php on line 517
复制代码 |
|