昨天我将 2 个文件从 /var/log/mongodb 移到了另一个目录。文件名为:“mongod.log”、“mongod.log.1”(此目录中仅有的 2 个大文件)。此时 mongodb 正在运行,我期望 mongodb 创建一个新的 mongod.log,但它没有这样做。然后我手动创建了一个 mongod.log 并执行了“chown mongodb:mongodb mongod.log”,但文件仍然是空的。
我无法停止 mongodb,如何强制 mongodb 再次登录此文件?mongod.conf 没问题。
答案1
尽管您已移动原始文件,但它仍然保持打开状态mongod
,并且它将继续作为其记录的文件,直到您停止该mongod
过程或尝试以下操作:
mongod.log
删除您在中创建的新文件/var/log/mongodb
- 将旧
mongod.log
文件移回/var/log/mongodb
- 发出
logRotate
命令从mongo
shell(当连接到相关时mongod
)
注意:或者,对于步骤 3,您可以发送来kill -SIGUSR1 <pid of mongod>
实现相同的目的。
完成此操作后,mongod.log
文件夹中现在会有一个新的较小文件,以及被截断的先前文件(不再被写入)。确切的名称取决于您正在运行的版本(您没有提到),但现在您可以自由地将大型日志文件移出到另一个目录(我建议压缩它们,它们很容易压缩)。
如果尺寸是一个常见问题,我建议将其作为 cron 作业或类似作业来执行,以自动化后续过程。
答案2
只需在运行时发出以下命令,您就可以看到日志被写入指定的日志文件:
db.adminCommand( { logRotate : 1 } )
希望这可以帮助 !!!