了解 logrotate 中单独旋转和压缩旋转之间的区别

了解 logrotate 中单独旋转和压缩旋转之间的区别

下面的块没有压缩语句 -

/a/b/file.log{
size 200M
create 0664 root root
rotate 10
datext
dateformat -%Y-%m-%d-%s
}

这个有一个压缩语句 -

/a/b/file.log{
size 200M
create 0664 root root
rotate 10
compress
datext
dateformat -%Y-%m-%d-%s
}

这个有一个 nocompress 声明 -

/a/b/file.log{
size 200M
create 0664 root root
rotate 10
nocompress
datext
dateformat -%Y-%m-%d-%s
}

以上三种场景有什么区别呢?它们各自的 logrotate 功能有何不同?

答案1

  • 使用compress压缩旋转日志。

  • 使用nocompress不会压缩轮换日志文件。

  • 不使用compressnocompress不会更改压缩或不压缩的默认设置。

压缩的默认设置可以在配置文件的开头设置logrotate为全局选项,如logrotate.conf手册中的示例配置中所做的那样:

# sample logrotate configuration file
compress

/var/log/messages {
    rotate 5
    weekly
    postrotate
        /usr/bin/killall -HUP syslogd
    endscript
}

"/var/log/httpd/access.log" /var/log/httpd/error.log {
    rotate 5
    mail [email protected]
    size 100k
    sharedscripts
    postrotate
        /usr/bin/killall -HUP httpd
    endscript
}

/var/log/news/* {
    monthly
    rotate 2
    olddir /var/log/news/old
    missingok
    postrotate
        kill -HUP $(cat /var/run/inn.pid)
    endscript
    nocompress
}

~/log/*.log {}

手册说:

前几行设置全局选项;在该示例中,日志在旋转后被压缩。 [...]

它接着说前两个部分(和最后一个部分)旋转/var/log/messages/var/log/httpd/access.log/var/log/httpd/error.log~/log/*.log进行压缩(由于全局compress选项)。文件/var/log/news/*被轮换没有压缩由于nocompress.

如果compressNor均未nocompress设置为全局选项,并且未在日志文件或日志文件集的配置节中使用,logrotate则将不是压缩受该配置部分影响的轮换日志文件。

答案2

正如其他人所提到的。

您必须检查默认值。这不仅对于logrotate其他配置是强制性的。

联机帮助页logrotate对此进行了如下描述:

compress

旧版本的日志文件被压缩gzip(1)默认情况下。也可以看看nocompress

nocompress

旧版本的日志文件未压缩。也可以看看compress

相关内容