MongoDB本身没有附带日志管理模块,在Windows下,如果不对日志文件作限制,则log会快速膨胀,直到占满硬盘空间。

针对该需求,写了一个脚本来管理Windows平台下的mangoDB日志:

第一步,写一个供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脚本加到系统的计划任务中,每天执行一次即可