MongoDB日志文件过大的解决方法(不停机)

安装在云主机上的 Mongodb,运行一段时间之后发现硬盘快满了,仔细查看才发现原来是 Mongodb 的日志太大导致的。

MongoDB 的日志文件在设置 logappend=true 的情况下,会不断向同一日志文件追加的, 时间久了日志文件会变得非常大。

下面介绍一个不需要停止 mongodb 服务,可以使 MongoDB 关闭当前日志文件,重启一个新的日志文件,原有文件会自动备份的方法。

进入到 mongo 的命令行交互程序,输入:

use admin
db.runCommand({logRotate: 1})
[root@iZ2ze8rjpnp2e2cubjzdntZ ~]# mongo 
MongoDB shell version v4.0.5 connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb Implicit session: session {"id" : UUID("1b261b4c-ee00-4480-b209-05770bfa6cfe") } MongoDB server version: 4.0.5 
> use admin switched to db admin 
> db.runCommand({logRotate:1})
{"ok" : 0, "errmsg" : "command logRotate requires authentication", "code" : 13, "codeName" : "Unauthorized"} 
>

这时候会发现重启了一个新的 MongoDB.log,原有的日志自动备份(带时间戳 )

不过这样也还是麻烦,还是做个定时器,按每天来分割日志更方便些。以下操作是在 /www/server/mongodb/bin 目录,以我的 mongodb 安装目录为例子。

第一步:编写 logAppend.js

db.runCommand({logRotate:1});

第二步:编写编写 logAppend.sh

cd /www/server/mongodb
mongo 127.0.0.1:27017/admin logAppend.js

第三步:设置权限

chmod 755 logAppend.*

第四步:设置定时器

这里采用 crontab:

crontab -e

增加


0 3 * * * /www/server/mongodb/bin/logAppend.sh
正文完
 0
评论(没有评论)