Mongodb日志管理
更新:HHH   时间:2023-1-7


#切除本身日志内容并且自动生成新的以日期生成的历史文件
方法一:
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


返回MongoDB数据库教程...