我使用pyapns (Iphone服务器),它反过来使用扭曲(twistd守护进程)。
twistd守护进程生成twistd.log文件。当twistd.log达到1MB时,它会将它们旋转到twistd.log.1、twistd.log.2等等,但它不使用log转速,所以我猜它是内置的。
问题是,这种情况将永远持续下去,旧的日志文件永远不会被删除。这最终会填满我的磁盘。
我尝试过使用log旋转或类似的方法来旋转日志,但是我需要经常运行日志旋转,因为我需要在twistd.log达到1MB之前进行旋转。这可能发生在一秒钟内,我所知道的取决于产生了多少日志。
那么,我如何在不侵入pyapns/twistd脚本的情况下进行日志旋转呢?
发布于 2014-08-19 08:37:31
实际上,没有一种方法可以通过常规的日志旋转来实现。Log转速不是守护进程,它由cron运行,通常每天运行一次。
您可以将其更改为每隔几秒钟运行一次,但如果1MB能够如此快地填满,则日志旋转无法跟上。
为什么不编写一个简单的cron作业,删除所有多余的旋转日志文件,让pyapns/twistd继续以1MB的速度旋转?例如,您可以删除比一周更早的所有文件,并使用以下简单的cron作业:
/usr/bin/find /var/log/twistd/* -mtime +7 -exec /bin/rm {} \;您甚至可以压缩这些文件,方法如下:
/usr/bin/find /var/log/twistd/* -regex '*.log.[0-9]+' | /usr/bin/xargs -I{} /bin/gzip {}这样,您就可以模拟日志旋转行为,而不必关闭Twistd内部日志旋转,并且不存在磁盘填充的风险。
https://serverfault.com/questions/622355
复制相似问题