在CentOS上清理MongoDB日志主要有以下两种方法:
一、使用logrotate工具(推荐)
- 安装logrotate:
sudo yum install logrotate - 创建配置文件:
在/etc/logrotate.d/下新建mongodb文件,内容示例:/var/log/mongodb/mongod.log { daily rotate 7 compress notifempty create 640 mongodb mongodb postrotate if [ -f /var/run/mongodb.pid ]; then kill -SIGUSR1 $(cat /var/run/mongodb.pid) fi endscript }daily:每日轮转;rotate 7:保留7天日志;compress:压缩旧日志。
- 测试并启用:
sudo logrotate -d /etc/logrotate.d/mongodb # 测试配置 sudo logrotate -f /etc/logrotate.d/mongodb # 强制执行
二、手动清理
- 手动切割日志:
通过MongoDB命令触发日志轮转:mongo --quiet --eval "db.adminCommand({logRotate: 1})" - 删除旧日志:
使用find命令删除指定天数前的日志(如删除30天前的日志):find /var/log/mongodb/ -name "mongod.log.*" -mtime +30 -exec rm {} \;
注意:
- 确保配置文件中路径与实际日志路径一致(可通过
cat /etc/mongod.conf查看systemLog.path)。 - 手动清理前建议先通过
logrotate测试配置,避免误删。