使用logrotate來壓縮日誌(轉)
使用logrotate來壓縮日誌(轉)[@more@]日誌檔案的管理:
1、logrotate 配置
2、預設配置 logrotate
3、使用include 選項讀取其他配置檔案
4、使用include 選項覆蓋預設配置
5、為指定的檔案配置轉儲引數
一、logrotate 配置
logrotate 程式是一個日誌檔案管理工具。用來把舊的日誌檔案刪除,並建立新的日誌檔案,我們把它叫做“轉儲”。我們可以根據日誌檔案的大小,也可以根據其天數來轉儲,這個過程一般透過 cron 程式來執行。
logrotate 程式還可以用於壓縮日誌檔案,以及傳送日誌到指定的E-mail 。
logrotate 的配置檔案是 /etc/logrotate.conf。主要引數如下表:
引數 功能
compress 透過gzip 壓縮轉儲以後的日誌
nocompress 不需要壓縮時,用這個引數
copytruncate 用於還在開啟中的日誌檔案,把當前日誌備份並截斷
nocopytruncate 備份日誌檔案但是不截斷
create mode owner group 轉儲檔案,使用指定的檔案模式建立新的日誌檔案
nocreate 不建立新的日誌檔案
delaycompress 和 compress 一起使用時,轉儲的日誌檔案到下一次轉儲時才壓縮
nodelaycompress 覆蓋 delaycompress 選項,轉儲同時壓縮。
errors address 專儲時的錯誤資訊傳送到指定的Email 地址
ifempty 即使是空檔案也轉儲,這個是 logrotate 的預設選項。
notifempty 如果是空檔案的話,不轉儲
mail address 把轉儲的日誌檔案傳送到指定的E-mail 地址
nomail 轉儲時不傳送日誌檔案
olddir directory 轉儲後的日誌檔案放入指定的目錄,必須和當前日誌檔案在同一個檔案系統
noolddir 轉儲後的日誌檔案和當前日誌檔案放在同一個目錄下
prerotate/endscript 在轉儲以前需要執行的命令可以放入這個對,這兩個關鍵字必須單獨成行
postrotate/endscript 在轉儲以後需要執行的命令可以放入這個對,這兩個關鍵字必須單獨成行
daily 指定轉儲週期為每天
weekly 指定轉儲週期為每週
monthly 指定轉儲週期為每月
rotate count 指定日誌檔案刪除之前轉儲的次數,0 指沒有備份,5 指保留5 個備份
tabootext [+] list 讓logrotate 不轉儲指定副檔名的檔案,預設的副檔名是:.rpm-orig, .rpmsave, v, 和 ~
size size 當日志檔案到達指定的大小時才轉儲,Size 可以指定 bytes (預設)以及KB (sizek)或者MB (sizem).
二、預設配置 logrotate
logrotate 預設的配置募??/etc/logrotate.conf。
Red Hat Linux 預設安裝的檔案內容是:
# see "man logrotate" for details
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# send errors to root
errors root
# create new (empty) log files after rotating old ones
create
# uncomment this if you want your log files compressed
#compress
1
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d
# no packages own lastlog or wtmp --we'll rotate them here
/var/log/wtmp {
monthly
create 0664 root utmp
rotate 1
}
/var/log/lastlog {
monthly
rotate 1
}
# system-specific logs may be configured here
預設的配置一般放在logrotate.conf 檔案的最開始處,影響整個系統。在本例中就是前面12行。
第三行weekly 指定所有的日誌檔案每週轉儲一次。
第五行 rotate 4 指定轉儲檔案的保留 4份。
第七行 errors root 指定錯誤資訊傳送給root。
第九行create 指定 logrotate 自動建立新的日誌檔案,新的日誌檔案具有和
原來的檔案一樣的許可權。
第11行 #compress 指定不壓縮轉儲檔案,如果需要壓縮,去掉註釋就可以了。
三、使用include 選項讀取其他配置檔案
include 選項允許系統管理員把分散到幾個檔案的轉儲資訊,集中到一個
主要的配置檔案。當 logrotate 從logrotate.conf 讀到include 選項時,會從指定檔案讀入配置資訊,就好像他們已經在/etc/logrotate.conf 中一樣。
第13行 include /etc/logrotate.d 告訴 logrotate 讀入存放在/etc/logrotate.d 目錄中的日誌轉儲引數,當系統中安裝了RPM 軟體包時,使用include 選項十分有用。RPM 軟體包的日誌轉儲引數一般存放在/etc/logrotate.d 目錄。
include 選項十分重要,一些應用把日誌轉儲引數存放在 /etc/logrotate.d 。
典型的應用有:apache, linuxconf, samba, cron 以及syslog。
這樣,系統管理員只要管理一個 /etc/logrotate.conf 檔案就可以了。
四、使用include 選項覆蓋預設配置
當 /etc/logrotate.conf 讀入檔案時,include 指定的檔案中的轉儲引數將覆蓋預設的引數,如下例:
# linuxconf 的引數
/var/log/htmlaccess.log
{ errors jim
notifempty
nocompress
weekly
prerotate
/usr/bin/chattr -a /var/log/htmlaccess.log
endscript
postrotate
/usr/bin/chattr +a /var/log/htmlaccess.log
endscript
}
/var/log/netconf.log
{ nocompress
monthly
}
在這個例子中,當 /etc/logrotate.d/linuxconf 檔案被讀入時,下面的引數將覆蓋/etc/logrotate.conf中預設的引數。
Notifempty
errors jim
五、為指定的檔案配置轉儲引數
經常需要為指定檔案配置引數,一個常見的例子就是每月轉儲/var/log/wtmp。為特定檔案而使用的引數格式是:
# 註釋
/full/path/to/file
{
option(s)
}
下面的例子就是每月轉儲 /var/log/wtmp 一次:
#Use logrotate to rotate wtmp
/var/log/wtmp
{
monthly
rotate 1
}
六、其他需要注意的問題
1、儘管花括號的開頭可以和其他文字放在同一行上,但是結尾的花括號必須單獨成行。
2、使用 prerotate 和 postrotate 選項
下面的例子是典型的指令碼 /etc/logrotate.d/syslog,這個指令碼只是對
/var/log/messages 有效。
/var/log/messages
{
prerotate
/usr/bin/chattr -a /var/log/messages
endscript
postrotate
/usr/bin/kill -HUP syslogd
/usr/bin/chattr +a /var/log/messages
endscript
}
第一行指定指令碼對 /var/log messages 有效
花ê哦閱誆康慕瘧駒誦杏? /var/log/messages
prerotate 命令指定轉儲以前的動作/usr/bin/chattr -a 去掉/var/log/messages檔案的“只追加”屬性 endscript 結束 prerotate 部分的指令碼postrotate 指定轉儲後的動作
/usr/bin/killall -HUP syslogd
用來重新初始化系統日誌守護程式 syslogd
/usr/bin/chattr +a /var/log/messages
重新為 /var/log/messages 檔案指定“只追加”屬性,這樣防治程式設計師或使用者覆蓋此檔案。
最後的 endscript 用於結束 postrotate 部分的指令碼
3、logrotate 的執行分為三步:
判斷系統的日誌檔案,建立轉儲計劃以及引數,透過cron daemon 執行下面的程式碼是 Red Hat Linux 預設的crontab 來每天執行logrotate。
#/etc/cron.daily/logrotate
#! /bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
1、logrotate 配置
2、預設配置 logrotate
3、使用include 選項讀取其他配置檔案
4、使用include 選項覆蓋預設配置
5、為指定的檔案配置轉儲引數
一、logrotate 配置
logrotate 程式是一個日誌檔案管理工具。用來把舊的日誌檔案刪除,並建立新的日誌檔案,我們把它叫做“轉儲”。我們可以根據日誌檔案的大小,也可以根據其天數來轉儲,這個過程一般透過 cron 程式來執行。
logrotate 程式還可以用於壓縮日誌檔案,以及傳送日誌到指定的E-mail 。
logrotate 的配置檔案是 /etc/logrotate.conf。主要引數如下表:
引數 功能
compress 透過gzip 壓縮轉儲以後的日誌
nocompress 不需要壓縮時,用這個引數
copytruncate 用於還在開啟中的日誌檔案,把當前日誌備份並截斷
nocopytruncate 備份日誌檔案但是不截斷
create mode owner group 轉儲檔案,使用指定的檔案模式建立新的日誌檔案
nocreate 不建立新的日誌檔案
delaycompress 和 compress 一起使用時,轉儲的日誌檔案到下一次轉儲時才壓縮
nodelaycompress 覆蓋 delaycompress 選項,轉儲同時壓縮。
errors address 專儲時的錯誤資訊傳送到指定的Email 地址
ifempty 即使是空檔案也轉儲,這個是 logrotate 的預設選項。
notifempty 如果是空檔案的話,不轉儲
mail address 把轉儲的日誌檔案傳送到指定的E-mail 地址
nomail 轉儲時不傳送日誌檔案
olddir directory 轉儲後的日誌檔案放入指定的目錄,必須和當前日誌檔案在同一個檔案系統
noolddir 轉儲後的日誌檔案和當前日誌檔案放在同一個目錄下
prerotate/endscript 在轉儲以前需要執行的命令可以放入這個對,這兩個關鍵字必須單獨成行
postrotate/endscript 在轉儲以後需要執行的命令可以放入這個對,這兩個關鍵字必須單獨成行
daily 指定轉儲週期為每天
weekly 指定轉儲週期為每週
monthly 指定轉儲週期為每月
rotate count 指定日誌檔案刪除之前轉儲的次數,0 指沒有備份,5 指保留5 個備份
tabootext [+] list 讓logrotate 不轉儲指定副檔名的檔案,預設的副檔名是:.rpm-orig, .rpmsave, v, 和 ~
size size 當日志檔案到達指定的大小時才轉儲,Size 可以指定 bytes (預設)以及KB (sizek)或者MB (sizem).
二、預設配置 logrotate
logrotate 預設的配置募??/etc/logrotate.conf。
Red Hat Linux 預設安裝的檔案內容是:
# see "man logrotate" for details
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# send errors to root
errors root
# create new (empty) log files after rotating old ones
create
# uncomment this if you want your log files compressed
#compress
1
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d
# no packages own lastlog or wtmp --we'll rotate them here
/var/log/wtmp {
monthly
create 0664 root utmp
rotate 1
}
/var/log/lastlog {
monthly
rotate 1
}
# system-specific logs may be configured here
預設的配置一般放在logrotate.conf 檔案的最開始處,影響整個系統。在本例中就是前面12行。
第三行weekly 指定所有的日誌檔案每週轉儲一次。
第五行 rotate 4 指定轉儲檔案的保留 4份。
第七行 errors root 指定錯誤資訊傳送給root。
第九行create 指定 logrotate 自動建立新的日誌檔案,新的日誌檔案具有和
原來的檔案一樣的許可權。
第11行 #compress 指定不壓縮轉儲檔案,如果需要壓縮,去掉註釋就可以了。
三、使用include 選項讀取其他配置檔案
include 選項允許系統管理員把分散到幾個檔案的轉儲資訊,集中到一個
主要的配置檔案。當 logrotate 從logrotate.conf 讀到include 選項時,會從指定檔案讀入配置資訊,就好像他們已經在/etc/logrotate.conf 中一樣。
第13行 include /etc/logrotate.d 告訴 logrotate 讀入存放在/etc/logrotate.d 目錄中的日誌轉儲引數,當系統中安裝了RPM 軟體包時,使用include 選項十分有用。RPM 軟體包的日誌轉儲引數一般存放在/etc/logrotate.d 目錄。
include 選項十分重要,一些應用把日誌轉儲引數存放在 /etc/logrotate.d 。
典型的應用有:apache, linuxconf, samba, cron 以及syslog。
這樣,系統管理員只要管理一個 /etc/logrotate.conf 檔案就可以了。
四、使用include 選項覆蓋預設配置
當 /etc/logrotate.conf 讀入檔案時,include 指定的檔案中的轉儲引數將覆蓋預設的引數,如下例:
# linuxconf 的引數
/var/log/htmlaccess.log
{ errors jim
notifempty
nocompress
weekly
prerotate
/usr/bin/chattr -a /var/log/htmlaccess.log
endscript
postrotate
/usr/bin/chattr +a /var/log/htmlaccess.log
endscript
}
/var/log/netconf.log
{ nocompress
monthly
}
在這個例子中,當 /etc/logrotate.d/linuxconf 檔案被讀入時,下面的引數將覆蓋/etc/logrotate.conf中預設的引數。
Notifempty
errors jim
五、為指定的檔案配置轉儲引數
經常需要為指定檔案配置引數,一個常見的例子就是每月轉儲/var/log/wtmp。為特定檔案而使用的引數格式是:
# 註釋
/full/path/to/file
{
option(s)
}
下面的例子就是每月轉儲 /var/log/wtmp 一次:
#Use logrotate to rotate wtmp
/var/log/wtmp
{
monthly
rotate 1
}
六、其他需要注意的問題
1、儘管花括號的開頭可以和其他文字放在同一行上,但是結尾的花括號必須單獨成行。
2、使用 prerotate 和 postrotate 選項
下面的例子是典型的指令碼 /etc/logrotate.d/syslog,這個指令碼只是對
/var/log/messages 有效。
/var/log/messages
{
prerotate
/usr/bin/chattr -a /var/log/messages
endscript
postrotate
/usr/bin/kill -HUP syslogd
/usr/bin/chattr +a /var/log/messages
endscript
}
第一行指定指令碼對 /var/log messages 有效
花ê哦閱誆康慕瘧駒誦杏? /var/log/messages
prerotate 命令指定轉儲以前的動作/usr/bin/chattr -a 去掉/var/log/messages檔案的“只追加”屬性 endscript 結束 prerotate 部分的指令碼postrotate 指定轉儲後的動作
/usr/bin/killall -HUP syslogd
用來重新初始化系統日誌守護程式 syslogd
/usr/bin/chattr +a /var/log/messages
重新為 /var/log/messages 檔案指定“只追加”屬性,這樣防治程式設計師或使用者覆蓋此檔案。
最後的 endscript 用於結束 postrotate 部分的指令碼
3、logrotate 的執行分為三步:
判斷系統的日誌檔案,建立轉儲計劃以及引數,透過cron daemon 執行下面的程式碼是 Red Hat Linux 預設的crontab 來每天執行logrotate。
#/etc/cron.daily/logrotate
#! /bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-959673/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用logrotate 管理日誌檔案(轉)logrotate
- linux _壓縮日誌Linux
- 使用logrotate配置日誌輪詢logrotate
- 使用logrotate管理日誌檔案logrotate
- logrotate自動輪換切割壓縮和清理歷史日誌場景介紹logrotate
- 使用logrotate 管理Linux日誌檔logrotateLinux
- 壓縮SQL SERVER日誌程式碼SQLServer
- 使用logrotate 管理Linux日誌檔(zt)logrotateLinux
- 日誌切分神器--logrotatelogrotate
- tomcat日誌切割-logrotateTomcatlogrotate
- MySQL 壓縮二進位制日誌MySql
- Sql Server 2005 日誌壓縮SQLServer
- 如何使用 logrotate 命令保持日誌檔案更新logrotate
- Linux日誌管理神器logrotate使用簡介Linuxlogrotate
- 日誌管理工具logrotatelogrotate
- 【shell】用shell實現自動壓縮日誌並且清理壓縮包
- logrotate 不支援不同裝置間的日誌轉儲logrotate
- nginx1.24配置logrotate日誌切割Nginxlogrotate
- 使用logrotate日誌切割工具輪循mysql的error.log/slow.log,遇到未生成壓縮檔案,測試執行卻正常logrotateMySqlError
- 在Linux中,如何使用logrotate命令管理日誌檔案?Linuxlogrotate
- linux 小工具之:日誌切割(logrotate)Linuxlogrotate
- Linux 下 logrotate 日誌輪詢操作梳理Linuxlogrotate
- 我是如何利用Hadoop做大規模日誌壓縮的Hadoop
- 關於SQL Server 2000的日誌檔案壓縮SQLServer
- 使用 JavaScript 壓縮和翻轉圖片JavaScript
- linux壓縮(解壓縮)命令詳解-轉Linux
- 利用Java實現zip壓縮/解壓縮 (轉)Java
- Linux下壓縮,解壓縮RAR包(轉)Linux
- 解包 bzip2 壓縮的壓縮文件(轉)
- Kafka-之資料日誌儲存(格式變化與壓縮)Kafka
- 【轉】在ASP.NET MVC中,使用Bundle來打包壓縮js和cssASP.NETMVCJSCSS
- 日誌切割logrotate和定時任務crontab詳解logrotate
- SQL Server 收縮日誌SQLServer
- 深入SQLServer日誌收縮SQLServer
- 如何使用Commander One Mac來壓縮檔案?Mac
- Logrotate日誌切割報錯 檔案不再同一個使用者組下logrotate
- linux 高效壓縮工具之xz的壓縮解壓使用Linux
- 給Tomcat,Apache配置gzip壓縮(HTTP壓縮)功能 (轉)TomcatApacheHTTP