首页 > Linux系统运用 > Linux下如何使用crontab来执行scrapy任务

Linux下如何使用crontab来执行scrapy任务

作者: 分类:Linux系统运用 点击: 8,420 次

    运行scrapy爬虫需要执行

    scrapy crawl spider_name

    而放到crontab中执行scrapy,需要scrapy命令的绝对路径,而且还要切换到对应的scrapy项目下才能使用crawl

    下面举一个每天零点执行任务的例子

    00 00 * * * cd /home/workspace/scrapy && /usr/local/bin/scrapy crawl xxx

    crontab简介

    Linux服务器上使用CronTab定时执行php

    我们先从相对比较复杂的服务器执行php谈起。服务器上安装了php,就可以执行php文件,无论是否安装了nginx或Apache这样的服务器环境软件。而Linux中,使用命令行,用CronTab来定时任务,又是绝佳的选择,而且也是效率最高的选择。

    首先,进入命令行模式。作为服务器的linux一般都默认进入命令行模式的,当然,我们管理服务器也一般通过putty等工具远程连接到服务器,为了方便,我们用root用户登录。在命令行中键入:

    crontab -e

    之后就会打开一个文件,并且是非编辑状态,则是vi的编辑界面,通过敲键盘上的i,进入编辑模式,就可以编辑内容。这个文件中的每一行就是一个定时任务,我们新建一行,就是新建一条定时任务(当然是指这一行内按照一定的格式进行书写)。我们现在来举个例子,增加一行,内容如下:

    00 * * * * lynx -dump https://www.yourdomain.com/script.php

    这是什么意思呢?实际上上面这一行由两部分组成,前面一部分是时间,后面一部分是操作内容。例如上面这个,

    00 * * * *

    就是指当当前时间的分钟数为00时,执行该定时任务。时间部分由5个时间参数组成,分别是:

    分 时 日 月 周
    第1列表示分钟1~59 每分钟用或者 /1表示,/n表示每n分钟,例如/8就是每8分钟的意思,下面也是类推
    第2列表示小时1~23(0表示0点)
    第3列表示日期1~31
    第4列表示月份1~12
    第5列标识号星期0~6(0表示星期天)
    整个句子的后面部分就是操作的具体内容。

    举个栗子

    lynx -dump https://www.yourdomain.com/script.php

    意思就是说通过lynx访问这个url。我们在使用中主要用到lynx、curl、wget来实现对url的远程访问,而如果要提高效率,直接用php去执行本地php文件是最佳选择,例如:

    00 */2 * * * /usr/local/bin/php /home/www/script.php

    这条语句就可以在每2小时的0分钟,通过linux内部php环境执行script.php,注意,这里可不是通过url访问,通过服务器环境来执行哦,而是直接执行,因为绕过了服务器环境,所以效率当然要高很多。

    好了,已经添加了几条需要的定时任务了吧。点击键盘上的Esc键,输入“:wq”回车,这样就保存了设置的定时任务,屏幕上也能看到提示创建了新的定时任务。接下来就是好好写你的script.php了。

    每隔2小时执行python脚本

    00 */2 * * * cd /home/www/novel.hfun.club/spider/ && /root/anaconda3/bin/python spider_douban_book.py



文章作者:zhangxuan
本文地址:http://wanlimm.com/77201808296727.html
版权所有 © 转载时必须以链接形式注明作者和原始出处!

上一篇:
下一篇:

或许你会感兴趣的文章:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.