Scrapyd日志输出优化

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

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

因此如今能够写一个脚本,来定时更新日志文件,将最后的100行保存下来就行了。日志

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

因此在这里咱们指定dir=~/logscrontab

新建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建立定时任务。定时任务

执行file

crontab -e

 

咱们想要一分钟清理一第二天志文件。新浪微博

输入

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

 

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

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

相关文章
相关标签/搜索