(转)Linux下定时切割Mongodb数据库日志并删除指定天数前的日志记录
说明:
操作系统:CentOS
Mongodb安装目录:/usr/local/mongodb
Mongodb数据库存放目录:/home/data/mongodb/mongodb_data
Mongodb日志存放目录:/home/data/mongodb/mongodb_log
实现目的:
对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! #保存退出
chmod +x /home/crontab/cut_mongodb_log.sh #添加执行权限
2.添加任务计划,修改/etc/crontab (也可以直接通过crontab -e 编辑)
vi /etc/crontab #在最后一行添加
0 0 * * * /home/crontab/cut_mongodb_log.sh #表示每天凌晨执行备份
:wq! #保存退出
3.重新启动crond使设置生效
/etc/rc.d/init.d/crond restart
chkconfig crond on #设为开机启动
service crond start #启动
至此,Linux下定时切割Mongodb数据库日志并删除指定天数前的日志记录完成。