目前我的日志文件为32兆。我是否错过了在日志文件增长时拆分日志文件的选项?
答案 0 :(得分:54)
您可以使用logrotate为您完成这项工作。
将其放在/etc/logrotate.d/mongod
中(假设您使用Linux并安装了logrotated
):
/var/log/mongo/*.log {
daily
rotate 30
compress
dateext
missingok
notifempty
sharedscripts
copytruncate
postrotate
/bin/kill -SIGUSR1 `cat /var/lib/mongo/mongod.lock 2> /dev/null` 2> /dev/null || true
endscript
}
答案 1 :(得分:5)
如果您认为32兆位对于日志文件来说太大,您可能还想查看它包含的内容。
如果日志看起来几乎无害(“打开连接”,“关闭连接”),那么您可能希望使用{{mongod
启动1}}切换。这将减少一些更冗长的日志记录。
答案 2 :(得分:3)
答案 3 :(得分:0)
使用logrotate是一个不错的选择。同时,它会生成2个fmchan评论的日志文件,你必须遵循Brett的建议,然后在你的postrotate脚本中添加一行来删除所有mongod风格的旋转日志"。
此外,copytruncate不是最佳选择。复制和截断之间总是有一个窗口。一些mongod日志可能会丢失。可以查看logrotate手册页或参考this copytruncate discussion。
再提供一个选项。您可以编写一个脚本,将旋转信号发送到mongod并删除旧的日志文件。 mongologrotate.sh是我编写的一个简单的参考脚本。您可以编写一个简单的cron作业或脚本,每隔30分钟定期调用它。