微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。