Как мне запустить такую команду, как scrapy crawl empt.com
в cron
задание, где мне нужно находиться в определенной папке, чтобы запустить команду, например:
/downloads/my_crawler/empt/empt/
тогда команда scrapy crawl empt.com
Мой нынешний crontab
запись выглядит так: 0 */2 * * * * root /downloads/my_cralwer/empt/empt/ scrapy crawl empt.com
Спасибо!
Добавление следующих строк в crontab -e
каждый день в 5 утра запускает мой скрап-обход. Это немного измененная версия ответа Crocs
PATH=/usr/bin
* 5 * * * cd project_folder/project_name/ && scrapy crawl spider_name
Без настройки PATH
, cron выдает ошибку "command not found: scrapy
". Я думаю, это потому, что /usr/bin
здесь в Ubuntu хранятся скрипты для запуска программ.
Обратите внимание, что полный путь для моего проекта scrapy: /home/user/project_folder/project_name/
. Я запустил env
в cron и заметил, что pwd /home/user
. Поэтому я пропустил /home/user/
в crontab
выше
Журнал cron может быть полезен при отладке
grep CRON /var/log/syslog
Пытаться:
0 */2 * * * * root cd /downloads/my_cralwer/empt/empt/ && scrapy crawl empt.com
Я знаю, что это старый пост, но чтобы мой заработал, мне также нужно было добавить переменную пути. В противном случае cron не сможет найти scrapy. Для меня это было: PATH=/usr/local/bin
Просто найдите двоичный файл scrapy и добавьте переменную пути в место перед заданием cron в файле. Я обычно использую crontab -e
для редактирования списка cronjob. Но такие утилиты, как webmin, тоже могут это делать.