Crontab执行命令失败 手工执行成功

今天开发说有一台服务器crontab任务执行异常。

同样的账户上去手动运行命令就能正确执行该命令。当时就感觉遇到灵异事件了。

吃完饭再仔细看看。

先把crontab要执行的命令重定向错误输出到文件。

1
*/ * * * * xxxx xxxx > ~/errors 2>&1

发现是如下错误:

/usr/bin/env: php: No such file or directory

说找不到PHP。基本可以判定是环境变量问题。可能当初php安装的时候没有加入到一个常用的路径中。

which php 得到php路径。

新建了一个脚本专门执行这条之前的命令,前面指定。

1
2
3
#!/bin/bash
export PATH=$PATH:/usr/local/bin
xxxx xxxx

或者直接导入环境变量再执行。

1
*/ * * * * source ~/.bashrc && xxxx xxxx > ~/errors 2>&1

关注公众号 尹安灿