下面的块没有压缩语句 -
/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
不会压缩轮换日志文件。不使用
compress
也nocompress
不会更改压缩或不压缩的默认设置。
压缩的默认设置可以在配置文件的开头设置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
.
如果compress
Nor均未nocompress
设置为全局选项,并且未在日志文件或日志文件集的配置节中使用,logrotate
则将不是压缩受该配置部分影响的轮换日志文件。
答案2
正如其他人所提到的。
您必须检查默认值。这不仅对于logrotate
其他配置是强制性的。
联机帮助页logrotate
对此进行了如下描述:
compress
旧版本的日志文件被压缩
gzip(1)
默认情况下。也可以看看nocompress
。
nocompress
旧版本的日志文件未压缩。也可以看看
compress
。