我使用pyapns(Iphone推送服务器),反过来使用扭曲(twistd守护进程)。
twistd守护进程生成twistd.log文件。 它将它们旋转到twistd.log.1,twistd.log.2等twistd.log达到1MB,但它不使用logrotate所以我想它是内置的。
问题是这种情况会一直持续下去,而且旧的日志文件永远不会被删除。 这最终会填满我的磁盘。
我试图使用logrotate或类似的旋转日志,但后来我需要非常经常运行logrotate,因为我需要旋转之前twistd.log达到1MB。 根据产生多less日志,我可以在一秒之内发生这种情况。
那么我怎样才能在不盗取pyapns / twistd脚本的情况下进行login?
有没有真正的方法来做到这一点常规logrotate。 Logrotate不是守护进程,它是由cron运行的,通常每天运行一次。
您可以将其更改为每隔几秒钟运行一次,但是如果1MB可以如此快速填满,那么logrotate无法跟上。
你为什么不写一个简单的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 {}
这样,您可以模拟logrotate行为,而不必closuresTwistd内部logrotate,并且没有磁盘填满的风险。