加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

清理memcachedb的日志文件

发布时间:2020-12-13 20:50:23 所属栏目:Nginx 来源:网络整理
导读:memcachedb使用的BerkeleyDB的数据库,但每10M生成一个log文件: ? [root@aslibra db]# ll -h total 26G -rw-r--r-- 1 root root??25G Jun 22 00:12 data.db -rw-r----- 1 root root??24K Jun 20 19:33 __db.001 -rw-r----- 1 root root 3.8M Jun 20 19:33 _

memcachedb使用的BerkeleyDB的数据库,但每10M生成一个log文件:

?

[root@aslibra db]# ll -h
total 26G
-rw-r--r-- 1 root root??25G Jun 22 00:12 data.db
-rw-r----- 1 root root??24K Jun 20 19:33 __db.001
-rw-r----- 1 root root 3.8M Jun 20 19:33 __db.002
-rw-r----- 1 root root??81M Jun 20 19:33 __db.003
-rw-r----- 1 root root??96K Jun 20 19:33 __db.004
-rw-r----- 1 root root??11M Jun 20 19:33 __db.005
-rw-r----- 1 root root??48K Jun 20 19:33 __db.006
-rw-r----- 1 root root??10M Jun 21 22:47 log.0000002271
-rw-r----- 1 root root??10M Jun 21 22:47 log.0000002272
-rw-r----- 1 root root??10M Jun 21 22:48 log.0000002273
-rw-r----- 1 root root??10M Jun 21 22:49 log.0000002274
.....



定期清理为好,否则就要有两倍数据的空间了,以前写的是定期清理某个时间修改的日志:

?

find /BerkeleyDB/aslibra.com/db/ -maxdepth 1 -type f -name 'log.*' -mmin +100 | xargs -i rm -f {}



清理100分钟前的文件,导致了一个文件,如果停用或者100分钟内没有更新动作,将删掉了所有日志,吃亏了,导致启动失败了,当然,可能可以修复,只是糊涂的话就没法再启用了。

稳当点,就删除所有的日志文件,保留最新的100个:

?

#!/bin/sh

cd /BerkeleyDB/aslibra.com/db/
ls -t log.* | awk '{ if(NR>100)print $0}'|xargs -i -t rm -f {}


简单解析一下脚本意思:

ls -t log.* 是列出所有log开头的日志文件,按时间排序,也就是最新的排前面
awk里面NR代表当前行数,NR>100则是100行后的才输出
xargs就是接收到awk输出的文件才转给rm删除

参考资料:awk手册

原文:http://www.aslibra.com/blog/post/memcachedb_clear_log_awk.php

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读