scrapy使用crontab定时任务不能自动执行的调试

时间:2021-05-01 07:45:52

在用crontab进行定时任务时,发现任务并没有执行。而手动bash yourshell.sh时可以正常的执行程序。以下是个人的解决流程。

一、将错误打印打out.log

*/10 * * * * bash yourshell.sh >> /tmp/out.log 2>&1

二、查看out.log发现并没有出错。那么一般是shell脚本环境变量的问题。

export PATH=$PATH:/usr/local/bin(如果没有这一行语句,shell会不识别scrapy)

cd /home/your/spider/

nohup scrapy crawl yourspider >> cookie.log 2>&1 &

 

 

附:scrapy启动自动添加crontab定时任务

 1 #!/bin/sh
 2 export PATH=$PATH:/usr/local/bin                                                                                                                         
 3 if grep -Fxq "*/10 * * * * bash /your/shell.sh >> /tmp/out.log 2>&1" /var/spool/cron/${USER}
 4 then
 5 cd /your/spider/
 6 nohup scrapy crawl spider_name >> cookie.log 2>&1 &
 7 else
 8 cronfile='/tmp/crontab.${USER}'
 9 echo "*/10 * * * * bash /your/shell.sh >> /tmp/out.log 2>&1" >> $cronfile
10 crontab $cronfile
11 rm -rf $cronfile
12 cd /your/spider/
13 nohup scrapy crawl spider_name >> cookie.log 2>&1 &
14 fi