我使用的是在具有 4GB 内部闪存的 BeableBone Black 上运行的 Debian。
>>
我的程序不断地写入/附加到我每天、每分钟创建的日志文件。
该文件的大小有限制吗?这个文件会不会被不断地写入,直到没有更多的内存为止,然后会发生什么?
如何使文件循环,以便几天后再次从头开始写入?
答案1
该文件的大小有限制吗?
除非文件系统施加限制,否则不会。在具有现代文件系统的 4GB 闪存上,答案是,在达到最大文件大小之前很久就会耗尽空间。所以不,没有限制。
是否会连续写入该文件,直到没有更多内存为止
是的
那么会发生什么?
您的程序将无法写入该文件。系统上的每个程序都无法在该文件系统上写入任何文件。这种失败将导致许多程序默默地崩溃(它们将无法记录崩溃的原因,因为日志没有空间)。
这真的很糟糕,通常需要您清理一些空间,然后重新启动,然后一切才能恢复正常。
有些人建议您保留/var/log
在它自己的分区上,以确保您的日志记录不会破坏您的系统。
如何使文件循环,以便几天后再次从头开始写入?
这就是“日志轮换”的主题。幸运的是,Debian 附带了内置的日志轮换工具。我建议阅读以下手册:logrotate
。该工具将定期移动日志文件并启动一个新文件。它还会自动压缩并最终删除旧的日志文件,这样您就不会耗尽空间。您所需要做的就是将程序的配置文件添加到/etc/logrotate.d/
.
笔记:如果您的程序从不关闭日志文件,那么您可能需要使用copytruncate
配置文件中的设置。但只有在需要时才使用它。