1. SIGUSR1 方法
# kill -SIGUSR1 <mongod process id> # find /data/mongodb_data/log/mongodb.log.* -mtime +7 -delete
该方法只能在Linux系统下进行。
你可以配置下crontab 定时运行以上命令,具体方法可以参考 crontab定时运行程序
2. mongo logRotate 命令方法
use admin db.runCommand( { logRotate : 1 } )
需要在mongos,mongod,config server运行。
该方法是Windows系统下的唯一方法。(不过不建议线上环境的mongodb跑在windows下)
3.Syslog Log Rotation
# vi /etc/logrotate.d/mongodb /opt/mongodb/log/mongodb.log { daily rotate 7 compress dateext missingok notifempty sharedscripts copytruncate postrotate /bin/kill -SIGUSR1 `cat /data/mongodb_data/mongod.lock 2> /dev/null` 2> /dev/null || true endscript } # logrotate -f /etc/logrotate.d/mongodb
logrotate可参见 《logrotate日志管理工具》。
mongodb bug
不过mongodb的稳定性差强人意。在日志轮转中也会导致mongodb进程终止的。
转自并部分添加自己的感想: 运维生存时间
花下眠工作室