无法调度cron作业

分享于 

5分钟阅读

ubuntu

  繁體

问题:

我想设置一个cron作业,运行scrapy (python脚本)

这是我运行脚本的方式,它手动运行正常:


ubuntu@ip-1-2-3-4-:cd /home/ubuntu/scrapers/my_scraper/


ubuntu@ip-1-2-3-4-:~/scrapers/my_scraper$ scrapy crawl my_spider



现在我尝试将上面的命令作为cron作业运行:

sudo crontab -e

添加了以下行:


PATH=/home/ubuntu/.local/bin/


35 14 * * * cd /home/ubuntu/scrapers/my_scraper && scrapy crawl my_spider



这不成功,我也无法诊断问题,如果我运行:

grep CRON /var/log/syslog

我得到以下输出:


Jul 12 06:47:01 ip-1-2-3-4 CRON[1451]: (root) CMD (test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ))


Jul 12 07:17:01 ip-1-2-3-4 CRON[1825]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)


Jul 12 08:17:01 ip-1-2-3-4 CRON[1836]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)


Jul 12 09:17:01 ip-1-2-3-4 CRON[1849]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)


Jul 12 10:17:01 ip-1-2-3-4 CRON[1861]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)


Jul 12 11:17:01 ip-1-2-3-4 CRON[1869]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)


Jul 12 12:17:01 ip-1-2-3-4 CRON[1878]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)


Jul 12 13:17:01 ip-1-2-3-4 CRON[1887]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)


Jul 12 14:17:01 ip-1-2-3-4 CRON[1962]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)


Jul 12 15:17:01 ip-1-2-3-4 CRON[1970]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)


Jul 12 16:17:01 ip-1-2-3-4 CRON[1982]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)


Jul 12 17:17:01 ip-1-2-3-4 CRON[1991]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)


Jul 12 18:17:01 ip-1-2-3-4 CRON[2002]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)


Jul 12 19:17:01 ip-1-2-3-4 CRON[2010]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)


Jul 12 20:05:01 ip-1-2-3-4 CRON[2018]: (root) CMD ( test -x /etc/cron.daily/popularity-contest && /etc/cron.daily/popularity-contest --crond)


Jul 12 20:17:01 ip-1-2-3-4 CRON[2022]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)


Jul 12 21:17:01 ip-1-2-3-4 CRON[2031]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)


Jul 12 22:17:01 ip-1-2-3-4 CRON[2039]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)


Jul 12 23:17:01 ip-1-2-3-4 CRON[2047]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)


Jul 13 00:17:01 ip-1-2-3-4 CRON[2156]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)


Jul 13 01:17:01 ip-1-2-3-4 CRON[2465]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)


Jul 13 02:17:01 ip-1-2-3-4 CRON[2549]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)


Jul 13 03:17:01 ip-1-2-3-4 CRON[2980]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)


Jul 13 04:17:01 ip-1-2-3-4 CRON[3033]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)



我还尝试使用run-my-scraper.sh:


#!/bin/bash



cd /home/ubuntu/scrapers/my_scraper


PATH=$PATH:/usr/bin/python3


export PATH


/home/ubuntu/.local/bin/scrapy crawl my_spider



我从控制台测试了运行上面的shell script,它可以工作,然后我将它添加为cron作业,但仍然相同的结果:

sudo crontab -e

添加了以下内容:


39 16 * * * ./home/ubuntu/scrapers/shell-scripts/run-my-scraper.sh




答案1:

35 14 * * * cd /home/ubuntu/scrapers/my_scraper && scrapy crawl my_spider 

答案2:

时区有问题,服务器被设置为UTC了。

crontab -e


56 18 * * * cd /home/ubuntu/scrapers/my_scraper && /home/ubuntu/.local/bin/scrapy crawl my_spider 





job  Schedule  CRON  
相关文章