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,清理日誌了。

這樣咱們就不怕日誌文件大量佔用主機空間啦~

相關文章
相關標籤/搜索