Linux下定时切割Mongodb数据库日志并删除指定天数前的日志记录

时间:2020-11-25 23:29:00

此为在网络上找来的,觉得很好!

实现目的:

对Mongodb数据库日志按天保存,并且只保留最近7天的日志记录。

具体操作:

使用Mongodb数据库自带的命令来切割日志

ps -def | grep mongod

kill -SIGUSR1 <mongod process id>

1、创建Mongodb数据库日志切割脚本

vi /home/crontab/cut_mongodb_log.sh #编辑

#!/bin/sh

datafile=/home/data/mongodb/mongodb_data #Mongodb数据库存放目录

logfile=/home/data/mongodb/mongodb_log #Mongodb日志存放目录

days=7 #代表删除7天前的备份,即只保留最近7天的备份

/bin/kill -SIGUSR1 `cat $datafile/mongod.lock` #切割日志

find $logfile/ -mtime +$days -delete #删除7天前的备份文件

:wq! #保存退出

系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容©版权所有,转载请注明出处及原文链接

2、添加任务计划,修改/etc/crontab

vi /etc/crontab #在最后一行添加

0 0 * * * /home/crontab/cut_mongodb_log.sh  #表示每天凌晨执行备份

:wq! #保存退出

3、重新启动crond使设置生效

/etc/rc.d/init.d/crond restart  #yum install -y vixie-cron安装计划任务,某些系统上可能没有预装

chkconfig crond on #设为开机启动

service crond start #启动

每天会在/home/data/mongodb/mongodb_log目录下生成类似mongodb.log.2015-02-28T06-33-20的日志记录

并且只保留最近7天的日志记录。

至此,Linux下定时切割Mongodb数据库日志并删除指定天数前的日志记录完成。