Cronjob 不只执行一个 php 脚本

Cronjob 不只执行一个 php 脚本

好的,我有一个 php 脚本需要每 15 分钟执行一次,但这样不行。我的其他脚本都可以正常执行,我可以通过命令行执行它。

# m h  dom mon dow   command
30 2 * * 1 /usr/bin/letsencrypt renew >> /var/log/le-renew.log
* 10 * * 0 php /var/www/html/slack/huiswerk_reminder/runner.php
* 17 * * 1 php /var/www/html/slack/huiswerk_reminder/runner.php
* 17 * * 2 php /var/www/html/slack/huiswerk_reminder/runner.php
* 14 * * 3 php /var/www/html/slack/huiswerk_reminder/runner.php
* 16 * * 4 php /var/www/html/slack/huiswerk_reminder/runner.php
*/15 * * * *  php /var/www/html/slack/cijfercheck/cijfercheck.php

只是*/15 * * * * php /var/www/html/slack/cijfercheck/cijfercheck.php不会被执行。我做错了什么?

我已采取以下步骤尝试修复它:

将 */15 更改为 0,15,30,45

并研究了以下所有问题:
https://stackoverflow.com/questions/32393740/cronjob-not-executing-php
https://stackoverflow.com/questions/5784573/cronjobs-not-executing-php-scripts-no-mailto-warnings-received https://askubuntu.com/questions/23009/reasons-why-crontab-does-not-work https://askubuntu.com/questions/93313/cron-job-not-running 为什么我的 crontab 不工作?我该如何排除故障?

一切都不起作用,奇怪的是,其他的都工作正常,没有任何问题...
那么我做错了什么?

答案1

crontab 末尾需要一个空行,否则它将无法工作。此外,请尝试在脚本前添加 #!/bin/bash,以确保它们在 BASH 中运行,而不是在其它 shell 中运行。

如果这不起作用,那么您可以尝试卸载到.sh 脚本:

*/15 * * * * $HOME/sched.sh >> $HOME/log_sched 2>>$HOME/error_sched

然后将其填写为 BASH 脚本:

#!/bin/bash

php5 /var/www/html/slack/cijfercheck/cijfercheck.php &&

echo FINISHED AT $(date +"%T")

相关内容