我通过输入“crontab -e”(在 root 和“ubuntu”用户中,在 32 位 Canonical Ubuntu AWS 实例上)将以下信息放入我的 crontab 文件中:
@reboot /usr/bin/php /usr/share/nginx/www/cron/updateIp.php
我也尝试过:
@reboot /usr/bin/php /usr/share/nginx/www/cron/updateIp.php >> /home/ubuntu/crontab.log
两次重启后,/home/ubuntu/crontab.log 中没有任何内容。
我想象当这个 cronjob 尝试运行时 php 和/或 nginx 没有加载?
然而,由于没有任何错误日志可供检查,我不知所措接下来做什么..?
编辑:即使使用与crontab -e是在...下创建的,但 cronjob 没有运行。
编辑2:(系统日志的结果):
Nov 9 13:29:02 ip-10-122-254-128 CRON[603]: (root) CMD (php /usr/share/nginx/www/cron/updateIp.php)
Nov 9 13:29:02 ip-10-122-254-128 CRON[604]: (ubuntu) CMD (/usr/bin/php /usr/share/nginx/www/cron/updateIp.php >> /home/ubuntu/crontab.log 2>&1)
编辑3: 此链接实际上提供了我正在寻找的答案。显然我需要安装 php-cgi 并特别提到它,即使 whereis php 没有显示它?只需安装 php5-cgi 并将 /usr/bin/php 更改为 /usr/bin/php-cgi 即可。我已经安装了 php5-cli 和 php5-fpm,所以我认为 php5-cgi 不是必需的,但我想它一定是必需的。
答案1
检查 stat cron 是否正在运行
status cron
cron start/running, process 1380
或者
ps aux | grep cron
root 1380 0.0 0.0 2092 876 ? Ss Nov03 0:02 cron
如果它正在运行,那么请查看/var/log/syslog
是否有任何相关消息。
grep CRON /var/log/syslog
Nov 9 11:18:29 iain-ubuntu cron[3509]: (CRON) STARTUP (fork ok)
Nov 9 11:18:29 iain-ubuntu cron[3509]: (CRON) INFO (Skipping @reboot jobs -- not system startup)
答案2
最有可能的是,cron 服务已关闭