如今維護着一個新浪微博爬蟲,爬取量已經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,清理日誌了。
這樣咱們就不怕日誌文件大量佔用主機空間啦~