IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Scrapyd日志输出优化

    崔庆才发表于 2017-05-17 06:49:03
    love 0

    现在维护着一个新浪微博爬虫,爬取量已经5亿+,使用了Scrapyd部署分布式。

    Scrapyd运行时会输出日志到本地,导致日志文件会越来越大,这个其实就是Scrapy控制台的输出。但是这个日志其实有用的部分也就是最后那几百行而已,如果出错,去日志查看下出错信息就好了。

    所以现在可以写一个脚本,来定时更新日志文件,将最后的100行保存下来就好了。

    Scrapyd默认的日志目录是在用户文件夹下的logs目录。

    所以在这里我们指定dir=~/logs

    新建bash脚本,内容如下:

    #!/bin/sh
    
    clean() {
      for file in $1/*
      do
        if [ -d $file ]
        then
          clean $file
        else
          echo $file
          temp=$(tail -100 $file)
          echo "$temp" > $file
        fi
      done
    }
    
    dir=~/logs
    clean $dir

    新建这样的一个脚本,然后命名为 clean.sh,我的直接放在了用户文件夹下。

    然后crontab创建定时任务。

    执行

    crontab -e

    我们想要一分钟清理一次日志文件。

    输入

    */1 * * * * /bin/sh ~/clean.sh

    然后退出之后,crontab就可以每隔一分钟执行一次clean.sh,清理日志了。

    这样我们就不怕日志文件大量占用主机空间啦~

     

    转载请注明:静觅 » Scrapyd日志输出优化



沪ICP备19023445号-2号
友情链接