crontab 中 /usr/bin/php 和 php 之间的区别

crontab 中 /usr/bin/php 和 php 之间的区别

在设置要在 crontab 中运行的 PHP 脚本时,指定“/usr/bin/php”和仅使用“php”之间有什么区别?我倾向于仅使用“php”而不是完整路径。

30 16 * * *  php /var/www/vhosts/dev_crm/cron/picco.php >> /home/crmpicco/cron-picco.log 2>&1

或者

30 16 * * *  /usr/bin/php /var/www/vhosts/dev_crm/cron/picco.php >> /home/crmpicco/cron-picco.log 2>&1

谢谢。

答案1

谁运行这个 crontab?

它可能由不同的用户运行,但该用户的 $PATH 中没有 /usr/bin,或者它可能在修改后的环境中运行,但该用户的 $PATH 中同样没有 /usr/bin。

如果有疑问,请指定完整路径。

答案2

区别在于第一个 crontab 将不起作用:)

原因是执行 crontabs 的用户没有填充其 PATH 变量来限制非自愿错误的影响。

如果需要,您可以在命令前再次声明变量:

30 16 * * *  PATH=/usr/bin/ php /var/www/vhosts/dev_crm/cron/picco.php >> /home/crmpicco/cron-picco.log 2>&1

相关内容