我有一个服务,坚持把它的日志文件保存在可怕的位置。 经过所有的努力,改变它们让它们失败的地方,我的下一个想法是创build一个更干净的文件的硬链接。 这让我担心:
如果我configurationlogrotate来pipe理这些日志文件,它会按预期工作(旋转日志,保持我的链接工作)? 或者会发生logrotate意外中断链接,并将日志积累在原生位置,但不在我的中心位置?
我相信我可以configurationlogrotate重新创build硬链接后,如果有必要的旋转。 但是,有必要吗?
要回答你的问题,这取决于你做什么样的旋转。 例如,下面的进程将会发生:
复制和截断方法:
这将日志文件备份留在旧的位置。
对此的修复相当简单:configurationlogrotate以将日志旋转到新的位置。 旧的文件仍然有增长的文件,但它只会是一个。
复制并创build方法:
这种方法是最有问题的,你需要一些后旋转魔术来清理它。
不要链接到目录的文件:链接。 如果链接到该文件,则当应用程序创build新的日志文件时,可能会遇到问题,或者作为日志轮转的一部分(取决于如何完成),或者停止并稍后重新启动应用程序。
ln -s /path/to/where/application/creates/logs/ /var/log/application
我认为你可以使用符号链接到你想要的新位置,并告诉logrotate在任何他们实际上驻留的文件夹中旋转日志; ln -s /path/file /path/to/newlink