我已经构建了一个php文件来检查一些结果,所以我需要设置一个cronjob.
我设置一个每30分钟运行一次,以便结果发送.但是,我不知道为什么我的crontab每隔30分钟就没有运行.
以下是我设置crontab的方法:
*/30 * * * * php /var/www/html/result.php
我已经确认我的文件目录是正确的.我不确定的时间部分是:是不是可以使用* / 30 * * * *或30 * * * *?我设置了* / 30 * * * *但没有用.
解决方法:
特定
*/30 * * * * php /var/www/html/result.php
它有多种可能性不起作用:
>首先,检查是否简单执行php /var/www/html/result.php非常重要.这是必需的.但不幸的是,实现这一点并不意味着问题得到解决.
>必须添加php二进制文件的路径.
*/30 * * * * php /var/www/html/result.php
改为
*/30 * * * * /usr/bin/php /var/www/html/result.php
或者来自哪个php.
>检查脚本的权限给运行crontab的用户.
授予文件执行权限:chmod x file.并确保crontab由具有执行脚本权限的用户启动.还要检查用户是否可以访问该文件所在的目录.
>为了更安全,您还可以在脚本顶部添加php路径,例如:
#!/usr/bin/php -q
...
?>
>确保用户有权使用crontab.检查他是否在/etc/cron.d/deny文件中.此外,进行基本测试,看看它是crontanb还是php问题.
* * * * * touch /tmp/hello
*/30 * * * * /usr/bin/php /var/www/html/result.php > /tmp/result
>使用-f选项执行脚本:
*/30 * * * * /usr/bin/php -f /var/www/html/result.php > /tmp/result
总而言之,有许多可能的原因.其中一个应该解决问题.
标签:php,crontab
来源: https://codeday.me/bug/20190917/1808715.html