centos – 使用cronolog压缩日志

我有一堆服务器(Centos 5.x)与Apache一起使用cronolog旋转日志.在一段时间后自动压缩和删除这些日志的最佳策略是什么?
CustomLog“| /usr/sbin / cronolog /var/log/httpd/my.examplehost.com/access_log-%Y%m%d”常见

我正在考虑创建一个刚才说的cron脚本

gzip /var/logs/httpd/my.examplehost.com/*

但是,这是否也试图压缩apache当前正在写入的文件?在cronolog主页上只提到你应该写你的cron工作或类似的但没有说明如何做到这一点.

Logrotate确实是这项工作的工具,但如果你不能使用它,那么你可以使用find和-ctime patameter
find /var/logs/httpd/my.example.host.com/ -ctime +0 -not -name '*.gz' -exec gzip {} \;

应该做你想要的,因为它找到了更改的文件> 24小时前还没有压缩并压缩它们.

为了确保您正在处理的文件仍未打开,您可以执行类似的操作

#!/bin/bash
for file in $(find /var/logs/httpd/my.example.host.com/ -ctime +0 -not -name '*.gz')
do
    lsof | grep $file
    if [$? -eq 1 ]
    then
        gzip $file
    fi
done

相关文章

Centos下搭建性能监控Spotlight
CentOS 6.3下Strongswan搭建IPSec VPN
在CentOS6.5上安装Skype与QQ
阿里云基于centos6.5主机VPN配置
CentOS 6.3下配置multipah
CentOS安装、配置APR和tomcat-native