У меня есть Scrapy искатель на упругом приложение Beanstalk, что я могу работать по SSH, как это:Cronjob на Elastic Beanstalk не работает
source /opt/python/run/venv/bin/activate
source /opt/python/current/env
cd /opt/python/current/app
scrapy crawl spidername
Я хочу создать cronjob, чтобы запустить это для меня. Поэтому я следил за предложениями here.
Мой setup.config
файл выглядит следующим образом:
container_commands:
01_cron_hemnet:
command: "cat .ebextensions/spider_cron.txt > /etc/cron.d/crawl_spidername && chmod 644 /etc/cron.d/crawl_spidername"
leader_only: true
Мой spider_cron.txt
файл выглядит следующим образом:
# The newline at the end of this file is extremely important. Cron won't run without it.
* * * * * root sh /opt/python/current/app/runcrawler.sh &>/tmp/mycommand.log
# There is a newline here.
Мой файл runcrawler.sh
расположен в /opt/python/current/app/runcrawler.sh
и выглядит следующим образом
#!/bin/bash
cd /opt/python/current/app/
PATH=$PATH:/usr/local/bin
export PATH
scrapy crawl spidername
Я могу перемещаться до /etc/cron.d/
и посмотреть, что crawl_spidername
существует. Но когда я запускаю crontab -l
или crontab -u root -l
, он говорит, что никакой кронтаб не существует.
Я не получаю ошибок журнала, ошибок развертывания и файла /tmp/mycommand.log
, который я пытаюсь вывести cron, никогда не создается. Кажется, что cronjob никогда не запускается.
Идеи?
Вы уверены, что ваш код является безошибочным? –
Отсутствие ошибок в журнале, отсутствие ошибок развертывания, и я могу запускать «scraw crawl spidername» SSH без ошибок. Это просто, что cronjob не запускается, или, может быть, он запускается, но команда ничего не делает (?). Правильно ли писать команду * * * * * username path, как я это делаю? –