MongoDB日志切割删除

1.linux宝塔面板计划任务mongo日志切割删除

#!/bin/sh
datafile=/www/server/mongodb/data  #Mongodb数据库存放目录
logfile=/www/server/mongodb/log  #Mongodb日志存放目录
days=7   #代表删除7天前的备份,即只保留最近7天的备份
/bin/kill -SIGUSR1 `cat $datafile/mongod.lock`  #切割日志
find $logfile/ -mtime +$days -delete   #删除7天前的备份文件

 

2.windows系统mongo日志切割删除
第一步,写一个供MongoDB执行的js文件:

db=db.getSiblingDB('admin');
db.runCommand({logRotate:1});

第一行代码是为了切换MongoDB数据库。这里之所以这样写,是因为普通的use xxx在js文件中不起作用。
第二行是执行日志分割命令。
第二步,写一个bat脚本,执行刚才的js脚本进行日志分割,并删除过期的日志文件:

X:\xxx\mongo.exe --port 端口号 -u "账号" -p "密码" --authenticationDatabase "admin" -quiet X:\xxx\logRotate.js
forfiles /p "X:\xxx\mongodb\log" /s /m *.* /d -3 /c "cmd /c del @path"

最后,把bat脚本加到系统的计划任务中,每天执行一次即可

3.Monodb磁盘空间释放
#testdb数据库 Log集合

use testdb
db.runCommand({ compact : 'Log' });

  

posted @ 2023-02-10 16:57  loganfan  阅读(211)  评论(0)    收藏  举报