今天遇见一个很奇葩的问题,linux 下设置了crontab不生效,但是手动执行又是成功的。
在开环环境上是对的,但是在测试环境上就不对,真的是不思其解。
具体crontab如下:
*/1 * * * * /home/worker/data/www/***.com/protected/yii api/live/check-live-status >> /tmp/live-status.log
最后和同事沟通请教了一下,终于发现问题所在。
这是由于没有添加Php的路径变量,在开发环境默认的Php环境是/user/bin/php, 而测试环境是/home/worker/bin/php,所以在开发环境下是正常工作的,而测试环境却是不正常的。 其实只要我们在写crontab的时候写全也就不会存在这个问题了。 例如:
*/1 * * * * /home/worker/bin/php /home/worker/data/www/***.com/protected/yii api/live/check-live-status >> /tmp/live-status.log
当然,我们只要确保php在/user/local/bin 下面也不会有问题。
Be the First to comment.