我如何运行一个命令,如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谢谢!
尝试:
0 */2 * * * * root cd /downloads/my_cralwer/empt/empt/ && scrapy crawl empt.com
在crontab -e添加以下行,每天上午5点运行我的scrapy爬行。 这是对crocs答案稍作修改的版本
PATH=/usr/bin * 5 * * * cd project_folder/project_name/ && scrapy crawl spider_name
没有设置PATH ,cron会给我一个错误“ command not found: scrapy ”。 我想这是因为/usr/bin是运行程序的脚本存储在Ubuntu中的地方。
请注意,我的scrapy项目的完整path是/home/user/project_folder/project_name/ 。 我在cron中运行了env命令,注意到pwd是/home/user 。 因此,我在上面的crontab跳过了/home/user/
cron日志可以在debugging时有帮助
grep CRON /var/log/syslog
我知道这是一个旧的职位,但为了让我的工作,我还需要添加一个pathvariables。 否则cron可能无法findscrapy。 对我来说,它是: PATH=/usr/local/bin只需findscrapy二进制文件,并将pathvariables添加到文件中的cronjob之前的位置即可。 我通常使用crontab -e编辑cronjob列表。 但是像webmin这样的工具也可以做到这一点。