Tente:
0 */2 * * * * root cd /downloads/my_cralwer/empt/empt/ && scrapy crawl empt.com
Como eu poderia executar um comando como scrapy crawl empt.com
em um trabalho cron
, onde eu preciso estar em uma pasta específica para executar o comando, por exemplo:
/downloads/my_crawler/empt/empt/
, em seguida, o comando scrapy crawl empt.com
Minha entrada atual crontab
é semelhante a esta:
%código%
Obrigado!
Adicionando as seguintes linhas em crontab -e
executa meu rastreamento scrapy às 5 da manhã todos os dias. Esta é uma versão ligeiramente modificada da resposta dos crocs
PATH=/usr/bin
* 5 * * * cd project_folder/project_name/ && scrapy crawl spider_name
Sem definir PATH
, o cron me daria um erro " command not found: scrapy
". Eu acho que isso é porque /usr/bin
é onde os scripts para executar programas são armazenados no Ubuntu.
Observe que o caminho completo do meu projeto escasso é /home/user/project_folder/project_name/
. Eu corri o comando env
no cron e notei que o pwd é /home/user
. Portanto, eu pulei /home/user/
em crontab
acima
O cron log pode ser útil durante a depuração
grep CRON /var/log/syslog
Eu sei que este é um post antigo, mas para fazer o meu funcionar, também precisei adicionar uma variável de caminho. Caso contrário, o cron pode não ser capaz de encontrar scrapy. Para mim foi:
%código%
Basta localizar o binário e adicionar a variável path a um local antes do cronjob no arquivo. Eu costumo usar PATH=/usr/local/bin
para editar a lista de tarefas. Mas utilitários como o webmin também podem fazer isso.
Tags cron