我在.extensions / site_cron.config
中创建了以下文件container_commands:
01_remove_old_cron_jobs:
command: "crontab -r || exit 0"
02_cronjobs:
command: "cat .ebextensions/crontab | crontab"
leader_only: true
我的.ebextensions / crontab是:
0 23 * * * php /var/www/html/index.php cron publish_new
我从Beanstalk那里拿了一份我的日志快照,看看:
2014-05-24 14:41:46,743 [DEBUG] Running command 01_remove_old_cron_jobs
2014-05-24 14:41:46,744 [DEBUG] Generating defaults for command 01_remove_old_cron_jobs
<<<
2014-05-24 14:41:46,857 [DEBUG] No test for command 01_remove_old_cron_jobs
2014-05-24 14:41:46,877 [INFO] Command 01_remove_old_cron_jobs succeeded
2014-05-24 14:41:46,877 [DEBUG] Command 01_remove_old_cron_jobs output:
2014-05-24 14:41:46,878 [DEBUG] Running command 02_cronjobs
2014-05-24 14:41:46,878 [DEBUG] Generating defaults for command 02_cronjobs
<<<
2014-05-24 14:41:46,989 [DEBUG] Running test for command 02_cronjobs
2014-05-24 14:41:47,005 [DEBUG] Test command output:
2014-05-24 14:41:47,006 [DEBUG] Test for command 02_cronjobs passed
2014-05-24 14:41:47,028 [INFO] Command 02_cronjobs succeeded
2014-05-24 14:41:47,029 [DEBUG] Command 02_cronjobs output:
2014-05-24 14:41:47,029 [DEBUG] No services specified
似乎所有事情都经历好了,而且实例处于绿色状态。但是,我在crontab -e
或/var/www/html/.ebextensions
中没有看到任何内容 - 这给出了什么?我怎么知道我的cron工作已到位并准备好了?
答案 0 :(得分:1)
我能找到我的cron工作。
我必须检查:sudo crontab -l
之前我使用的是crontab -l
不完全确定它为什么显示为sudo,但不是为登录用户显示。我想我已经是根。
无论如何,因为它在crontab中显示,我将假设它们将按预期运行。
答案 1 :(得分:1)
出于某种原因,如果您在根crontab中安装作业,他们就不会运行。 他们必须在ec2-user crontab中,否则他们就不会执行。