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