Scrapyd 日志输出优化

举报
崔庆才丨静觅 发表于 2021/05/22 00:15:44 2021/05/22
【摘要】 现在维护着一个新浪微博爬虫,爬取量已经 5 亿 +,使用了 Scrapyd 部署分布式。 Scrapyd 运行时会输出日志到本地,导致日志文件会越来越大,这个其实就是 Scrapy 控制台的输出。但是这个日志其实有用的部分也就是最后那几百行而已,如果出错,去日志查看下出错信息就好了。 所以现在可以写一个脚本,来定时更新日志文件,将最后的 100 行保存下来就好了。 Scra...

现在维护着一个新浪微博爬虫,爬取量已经 5 亿 +,使用了 Scrapyd 部署分布式。 Scrapyd 运行时会输出日志到本地,导致日志文件会越来越大,这个其实就是 Scrapy 控制台的输出。但是这个日志其实有用的部分也就是最后那几百行而已,如果出错,去日志查看下出错信息就好了。 所以现在可以写一个脚本,来定时更新日志文件,将最后的 100 行保存下来就好了。 Scrapyd 默认的日志目录是在用户文件夹下的 logs 目录。 所以在这里我们指定 dir=~/logs 新建 bash 脚本,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/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 创建定时任务。 执行

1
crontab -e

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

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

然后退出之后,crontab 就可以每隔一分钟执行一次 clean.sh,清理日志了。 这样我们就不怕日志文件大量占用主机空间啦~

文章来源: cuiqingcai.com,作者:崔庆才,版权归原作者所有,如需转载,请联系作者。

原文链接:cuiqingcai.com/4534.html

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。