背景
mongodb 的日志非常重要,记录了执行事件,错误信息,慢查询等,在我们排查时有特别的帮助。但是有一点不足之处是所有日志都记录在同一个文件,当数据库请求量较大时会有如下缺点暴露:
单文件太大,查询特定的内容不方便
容量无法得到控制,日志文件容量会持续增大,浪费存储
所以利用 linux 的 crontab 工具定时执行切割日志并保存指定N天前的记录是一种简单的实现方法。
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
# 注意替换 db 和 日志目录 和想保存天数
kill -SIGUSR1 `cat /data/mongodb/db/mongod.lock`
find "/data/mongodb/log/" -mtime +7 -name "mongod.log*" -exec rm -rf {} \;