手动在CentOS中执行sh脚本,一切正常;将该sh加入crontab中任务计划调度之后,完全没有执行到的感觉啊!
查看crontab执行记录日志,# cat /var/log/cron ,日志中并没有执行的记录,说明计划任务并没有被调度执行。
重新编辑计划任务,# crontab -e,把错误输出重定向,40 10 * * * /home/job.sh 2>> /tmp/log,然后查看日志记录,# cat /tmp/log , 有报错信息。
google一把,总结如下:
crontab的定时任务不能执行成功,但是手动执行脚本能成功。说明不是脚本本身的问题,推断可能是crond没有初始化用户的环境变量。
解决办法:
#!/bin/bash
#cd /var/www/yyt/yyt/branches/liulei161228/
. /etc/profile
basepath=$(cd `dirname $0`; pwd)
/usr/local/bin/phpunit --log-junit $basepath/web/testResult.xml -c $basepath/app/ $basepath/src/Bnqc/MobileBundle/
php $basepath/testResult.php
之前是 phpunit --log-junit $basepath/web/testResult.xml -c $basepath/app/ $basepath/src/Bnqc/MobileBundle/
Ok, 这样,crontab在执行脚本的时s候,就能够读到用户的环境变量参数啦