Crontab执行命令失败 手工执行成功
今天开发说有一台服务器crontab任务执行异常。
同样的账户上去手动运行命令就能正确执行该命令。当时就感觉遇到灵异事件了。
吃完饭再仔细看看。
先把crontab要执行的命令重定向错误输出到文件。
1 | */ * * * * xxxx xxxx > ~/errors 2>&1 |
发现是如下错误:
/usr/bin/env: php: No such file or directory
说找不到PHP。基本可以判定是环境变量问题。可能当初php安装的时候没有加入到一个常用的路径中。
which php
得到php路径。
新建了一个脚本专门执行这条之前的命令,前面指定。
1 |
|
或者直接导入环境变量再执行。
1 | */ * * * * source ~/.bashrc && xxxx xxxx > ~/errors 2>&1 |