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