如何配置 logrotate 以便在轮换后不删除我的日志文件?

如何配置 logrotate 以便在轮换后不删除我的日志文件?

有办法做到吗?

答案1

在您的 logrotate.conf (或等效的 logrotate.d 文件中),将以下行更改为“

rotate 10

(您的数字可能不同)改为更大的数字。这将告诉它保存这么多天的日志。您可以将其设置为 36500,这将持续 100 年。

答案2

我一直在寻找这个,以便每天、每周和每月轮换我的数据库备份;因此我每天轮换文件,但保留文件进行每周轮换,每年轮换也是一样。

使用复制选项。摘自手册:

copy

复制 复制日志文件,但完全不更改原始文件。例如,可以使用此选项来创建当前日志文件的快照,或者当其他实用程序需要截断或解析文件时。使用此选项时,创建选项将不起作用,因为旧日志文件仍保留在原处。

答案3

暂且不论旋转涉及删除这一点……;-)

看起来您可以简单地将单词“copy”添加到相应的文件(可能在 /etc/logrotate.d 中)。例如,apache2 logrotate 脚本如下所示:

/var/log/apache2/*.log {
    每周
    missok
    旋转 52
    压缩
    延时压缩
    通知为空
    复制
    共享脚本
    后旋转
        如果 [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; 然后
            /etc/init.d/apache2 重新加载 > /dev/null
    结束语
}

尝试一下,看看它是否能达到你想要的效果。

相关内容