Logrotate

了解 logrotate 中單獨旋轉和使用壓縮旋轉之間的區別

  • January 5, 2022

下面的塊沒有壓縮語句 -

/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 功能有何不同?

  • 使用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 recipient@example.org
   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也沒有nocompress設置為全域選項,並且沒有在日誌文件或日誌文件集的配置部分中使用,則不會logrotate壓縮受該配置部分影響的旋轉日誌文件。

引用自:https://unix.stackexchange.com/questions/685105