crontab中的符号链接,找不到脚本

我正在运行Debiantesting,不能得到一个简单的cron来运行符号链接PHP脚本。

我有一个PHP脚本在我的家庭文件夹/home/foobar/dir/script.php (从下面的shebang #!/usr/bin/env php )的子目录中。

我创build了一个指向它的符号链接:

 sudo ln -s ~/dir/script.php /usr/local/bin/whatever ls -la /usr/local/bin lrwxrwxrwx 1 root staff 24 Feb 27 17:46 whatever -> /home/foobar/dir/script.php* 

并将以下规则添加到我的crontab(每分钟执行一次):

 crontab -e * * * * * whatever 

它不起作用 ,我得到以下错误:

 cat /var/mail/foobar ... /bin/sh: 1: whatever: not found 

指向脚本时不使用符号链接工作

 crontab -e * * * * * /home/foobar/dir/script.php 

任何想法?

/usr/local/bin/usr/local/sbin这样的目录在cronjobs $PATH中不是默认的。 但是你可以在crontab中重新定义$PATH ,在任何定义的cronjob之前,简单地把这个东西放在这里

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

cron下的$ PATH环境variables是有限的,并且不包括/ usr / local / bin和/ home / foobar / dir。 正如您发现的,正确答案是完全限定您的crontab脚本的path; 它导致更less的惊喜。