crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。下面是简单使用crontab进行定时循环执行scrapy爬虫的操作:
-
安装crontab
yum install crontab
-
编辑crontab服务文件
crontab -e
(其他参数:-u 指定用户下的crontab; -r 删除; -l 查看crontab工程目录; -i 有提示的删除) -
在crontab文件中添加命令以爬取name为ACW1的爬虫
* * * * * cd /home/hyj/kids && scrapy crawl ACW1 -o ACW1.json
(更多写法参照https://www.cnblogs.com/longjshz/p/5779215.html)
实现了每分钟执行一次爬虫。在爬虫比较多时,可以采用shell脚本集中管理。若爬虫运行时间较长,可结合scrapy jobs进行暂停爬取,之后再恢复运行
遇到的问题:如果直接在crontab -e中输入* * * * * scrapy crawl xxx,定时任务是不会生效的,因为我们不知道crontab执行时,其所处的目录,很有可能就没有scrapy命令和crawl命令。因此,书写如下crontab的指令:* * * * * cd /home/hyj/kids && scrapy crawl ACW1,就可以正常的执行定时任务了。
- 查看crontab历史执行情况
默认情况下,crontab中执行的日志写在/var/log下。可通过以下指令在root权限下访问:
tail –f /var/log/cron
crontab日志
网友评论