在CentOS上清理MongoDB日志主要有以下两种方法:
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 # 强制执行
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测试配置,避免误删。