限制连续写入日志文件

限制连续写入日志文件

我使用的是在具有 4GB 内部闪存的 BeableBone Black 上运行的 Debian。

>>我的程序不断地写入/附加到我每天、每分钟创建的日志文件。

该文件的大小有限制吗?这个文件会不会被不断地写入,直到没有更多的内存为止,然后会发生什么?

如何使文件循环,以便几天后再次从头开始写入?

答案1

该文件的大小有限制吗?

除非文件系统施加限制,否则不会。在具有现代文件系统的 4GB 闪存上,答案是,在达到最大文件大小之前很久就会耗尽空间。所以不,没有限制。

是否会连续写入该文件,直到没有更多内存为止

是的

那么会发生什么?

您的程序将无法写入该文件。系统上的每个程序都无法在该文件系统上写入任何文件。这种失败将导致许多程序默默地崩溃(它们将无法记录崩溃的原因,因为日志没有空间)。

这真的很糟糕,通常需要您清理一些空间,然后重新启动,然后一切才能恢复正常。

有些人建议您保留/var/log在它自己的分区上,以确保您的日志记录不会破坏您的系统。

如何使文件循环,以便几天后再次从头开始写入?

这就是“日志轮换”的主题。幸运的是,Debian 附带了内置的日志轮换工具。我建议阅读以下手册:logrotate。该工具将定期移动日志文件并启动一个新文件。它还会自动压缩并最终删除旧的日志文件,这样您就不会耗尽空间。您所需要做的就是将程序的配置文件添加到/etc/logrotate.d/.

笔记:如果您的程序从不关闭日志文件,那么您可能需要使用copytruncate配置文件中的设置。但只有在需要时才使用它。

相关内容