我正在运行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的惊喜。