我有一个 linux 应用程序,它不断地将日志信息写入日志文件,例如。/var/log/application.log
. 由于应用程序不会自动旋转文件,此日志文件可能会在几周内达到 GB 大小,因此我希望能够正确旋转此文件
我在这里主要担心的是,要始终旋转由应用程序打开的文件,我可能需要:
将文件移动到其旋转形式 /var/log/application.log -> /var/log/application.log.2013-01-28
创建一个空的/var/log/application.log
. obs:此时申请进程还在写入/var/log/application.log.2013-01-28
将应用程序进程的文件描述符更改为再次指向 /var/log/application.log
那么,我说得对吗?如果是这样,我该怎么做?(主要是改变文件描述符部分)
如果我不是,正确的方法是什么以及如何去做?
根据FHS,目录/lib
和/usr/lib
都用于库(分别用于库/sbin
和用户库)。
但是/var/lib
文件夹呢?按照相同的逻辑,这个文件夹应该有类似“变量库”的东西(听起来很奇怪),但它实际上保存了由运行程序生成和维护的数据,或者由维基百科文章定义:
状态信息。程序在运行时修改的持久数据,例如数据库、打包系统元数据等。
从新的角度来看,将数据库数据和服务文件放在下面/srv
而不是放在下面更有意义/var/lib