我最近必须从备份映像重新创建我们的网络服务器,并且由于某种原因,一些 cronjobs 无法工作,而在恢复之前它们是可以工作的。
该服务器运行的是 Ubuntu 22.04
cron-job 的路径是 /var/spool/cron/crontabs/www-data
正如我所说,一些 cron 作业正在运行,而其他的则没有运行。
## PROJECT 1
30 5 * * * curl 'https://project_1_url/cron/cycle/execute'
01 5 * * * curl 'https://project_1_url/cron/search/rebuild'
*** other crons in this project ***
# PROJECT 2
30 7 * * * php /var/www/project_2/artisan cron_1:notify
0 23 * * * php /var/www/project_3/artisan cron_2:alert
*** other crons in this project***
## PROJECT 3
* * * * * php /var/www/project_3/artisan schedule:run >> /dev/null 2>&1
因此,据我所知,项目 1 和项目 2 的 cron 作业都运行良好。
但项目 3 的 cron-job 似乎根本没有运行。
现在,如果我进入 project_3 并输入 'php artisan schedule:run',我会得到
没有准备好运行任何已安排的命令。
这是有道理的,因为虽然 cron-job 应该每分钟运行一次,但它实际上只会在一天中的某些时间“触发”任何事情。
当我以某种方式“欺骗”它以强制它在同一个 cron-job 中运行通常在一天中的某个时间进行的操作时,我得到了这个。
运行计划命令: (touch /var/www/project_3/storage/framework/schedule-6386abb6b38f91c825ff1dfc3599451e; '/usr/bin/php5.6' 'artisan' schedule_item; rm /var/www/project_3/storage/framework/schedule-6386abb6b38f91c825ff1dfc3599451e) > '/dev/null' 2>&1 &
但如果它失败了,它就不会在项目错误日志或该操作的内部错误日志表中的任何位置记录我所能找到的任何错误。
我已经chown www-data:crontab www-data
在 crontabs 中完成了 www-data 文件。
有什么想法吗?
更新:cron-job 实际上运行良好。需要更新的是环境设置(即 S3 凭证)。它仍然默默地失败了,因为在错误捕获 PHP 代码中,假设该过程的 S3 部分不会失败。