rgsfew 发表于 2015-5-26 08:42:29

Mongodb日志管理

#切除本身日志内容并且自动生成新的以日期生成的历史文件
方法一:
mongod -v --logpath /var/log/mongodb/mongos.log

方法二:
kill -SIGUSR1 {pid}

方法三:
use admin
db.runCommand("logRotate")

#两种删除旧的日志文件,保留7天的日志文件
find /var/log/mongodb/mongos.log.* -mtime +7 -exec rm -rf {} \;
find /var/log/mongodb/mongos.log.* -mtime +7 -delete

方法四:
vim /etc/logrotate.d/mongodb
/mongod/config.log {
daily                           #每天
rotate 7                     #轮转7天
compress                        #通过gzip压缩
missingok                     #如果日志不存在则忽略该警告
notifempty                      #如果是空文件则不转存
sharedscripts                           #只为整个日志组运行一次的脚本
copytruncate                            #用于还在打开中的日志文件,把当前日志备份并截断
dateext                         #使用日期作为命名格式
size 200M                      #当日志文件达到指定大小时就转存,可以指定K,M
postrotate
    /bin/kill -SIGUSR1 'cat /mongod/mongod.lock 2>/dev/null' 2> /dev/null || true
endscript                     #结束脚本
}

#立即使上面的语句生效
logrotate mongodb

#脚本实现自动切割日志
vim /root/cut_mongodb_log.sh
#!/bin/bash
datafile=/mongodb/mongodb_data
logfile=/mongodb/mongodb_log
days=7
/bin/kill -SIGUSR1 'cat $datafile/mongod.lock'
find $logfile/ -mtime +$days -delete

chmod +x /root/cut_mongodb_log.sh
vim /etc/crontab
0 0 * * * /root/cut_mongodb_log.sh
service crond restart
chkconfig crond on



页: [1]
查看完整版本: Mongodb日志管理