logrotate 日誌分割工具
由於tomcat 產生的日誌量過大,有資料顯示"當Tomcat的日誌檔案catalina.out的大小大於2GB時,Tomcat程式崩潰時將有可能會啟動失敗並且不會有任何錯誤資訊提示"
目前,以tomcat的輸出日誌catalina.out 的量非常大,需要對其進行日誌分割,日誌分割工具用到了logrotate。
logrotate 是一個日誌管理程式,用來把日誌檔案按要求切割,保留指定的份數,並且建立新日誌。稱作"轉儲"。(旋轉; 使轉動; 使輪流,輪換; 交替;)
logrotate 的執行依賴crond 服務實現,具體實現細節可以檢視
cat /etc/cron.daily/logrotate
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
crontab 的配置檔案
[[email protected] ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
規定不同型別的定時任務執行的時間
logrotate 的配置資訊在/etc/logrotate.conf 中的是全域性配置檔案,針對不同服務的配置檔案放在 /etc/logrotate.d/中,如果與全域性配置衝突,以/etc/logrotate.d/ 為準。
logrotate 的執行分為三步,判斷系統的日誌檔案,建立轉儲計劃及引數,通過cron daemon 執行crontab 預設執行的程式碼。 logrotate 的指令碼放在/etc/cron.daily/logrotate 中
logrotate.conf 配置引數的含義:
# see "man logrotate" for details
# rotate log files weekly
weekly #每週輪轉一次
# keep 4 weeks worth of backlogs
rotate 4 #保留四個日誌檔案
# create new (empty) log files after rotating old ones
create #rotate後,建立一個新的空檔案
# uncomment this if you want your log files compressed
#compress #預設是不壓縮的
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d #這個目錄下面配置檔案生效
# no packages own wtmp — we’ll rotate them here
/var/log/wtmp { #定義/var/log/wtmp這個日誌檔案;
monthly #每月輪轉一次,取代了上面的全域性設定的每週輪轉一次;
minsize 1M #定義日誌必須要大於1M大小才會去輪轉;
create 0664 root utmp #新的日誌檔案的許可權,屬主,屬主;
rotate 1 #保留一個,取代了上面的全域性設定的保留四個;
}
/var/log/btmp { #定義/var/log/btmp這個日誌檔案;
missingok #如果日誌丟失, 不報錯;
monthly
create 0600 root utmp
rotate 1
}
如果特定的配置檔案沒有指定相應的項,那麼全域性配置就會起作用。
logrotate 常用的引數有:
daily #指定轉儲週期為每天
weekly #指定轉儲週期為每週;
monthly #指定轉儲週期為每月;
rotate count #指定日誌檔案刪除之前轉儲的次數,0指沒有備份,5指保留5個備份;
compress #通過gzip壓縮轉儲以後的日誌;
nocompress #不需要壓縮時,用這個引數;
delaycompress #延遲壓縮,和compress一起使用時,轉儲的日誌檔案到下一次轉儲時才壓縮;
nodelaycompress #覆蓋delaycompress選項,轉儲同時壓縮;
copytruncate #用於還在開啟中的日誌檔案,把當前日誌備份並截斷;
nocopytruncate #備份日誌檔案但是不截斷;
create mode owner group #轉儲檔案,使用指定的檔案模式建立新的日誌檔案;
nocreate #不建立新的日誌檔案;
errors address #專儲時的錯誤資訊傳送到指定的Email地址;
ifempty #即使是空檔案也轉儲,這個是logrotate的預設選項;
notifempty #如果是空檔案的話,不轉儲;
mail address #把轉儲的日誌檔案傳送到指定的E-mail地;
nomail #轉儲時不傳送日誌檔案;
olddir directory #轉儲後的日誌檔案放入指定的目錄,必須和當前日誌檔案在同一個檔案系統;
noolddir #轉儲後的日誌檔案和當前日誌檔案放在同一個目錄下;
prerotate/endscript #在轉儲以前需要執行的命令可以放入這個對,這兩個關鍵字必須單獨成行;
postrotate/endscript #在轉儲以後需要執行的命令可以放入這個對,這兩個關鍵字必須單獨成行;
tabootext [+] list #讓logrotate不轉儲指定副檔名的檔案,預設的副檔名是:.rpm-orig, .rpmsave,v,和~ ;
size size #當日志文件到達指定的大小時才轉儲,Size可以指定bytes(預設)以及KB(sizek)或者MB(sizem);
postrotate <s> endscript #日誌輪換過後指定指定的指令碼,endscript引數表示結束指令碼;
sharedscripts #共享指令碼,下面的postrotate <s> endscript中的指令碼只執行一次即可;
logrotate 分割日誌的方法主要有兩種:
一種是不使用指定引數”copytruncate” 。這種方法會建立一個新的日誌檔案給程式輸出日誌,這個方法要重新啟動程序。 有些程式提供了重新開啟日誌的介面, 如果一個程式輸出了多個需要滾動的指令碼,那麼就需要使用sharedscripts 引數,當所有的日誌都重新命名了後,再進行通知。
第二種是使用指定引數”copytruncate” 。 這種方法不會更換當前程式輸出日誌的檔案。
重新命名程式當前正在輸出日誌的程式。因為重新命名只會修改目錄檔案的內容,而程序操作檔案靠的是inode編號,所以並不影響程式繼續輸出日誌。
建立新的日誌檔案,檔名和原來日誌檔案一樣。雖然新的日誌檔案和原來日誌檔案的名字一樣,但是inode編號不一樣,所以程式輸出的日誌還是往原日誌檔案輸出。
通過某些方式通知程式,重新開啟日誌檔案。程式重新開啟日誌檔案,靠的是檔案路徑而不是inode編號,所以開啟的是新的日誌檔案。
/var/log/nginx/*log {
daily
rotate 10
missingok
notifempty
compress
sharedscripts
su root
postrotate
/bin/kill -USR1 $(cat /var/run/nginx.pid 2>/dev/null) 2>/dev/null || :
endscript
}
第二種copytruncate 是將正在輸出的日誌copy出來,再清空(trucate)原來的日誌。
這個方案再日誌copy 到清空檔案這段時間內,日誌資訊會丟失。 所以,大部分程式都提供了更新開啟日誌的功能。
執行剛剛建立的配置:
cat /etc/logrotate.d/tomcat
/usr/local/tomcat-huarun/log/catalina.out {
rotate 4
missingok
notifempty
size 500M
copytruncate
create 700 root root
}
logrotate -f /etc/logrotate.d/tomcat
相關推薦
logrotate 日誌分割工具的配置使用
Logrotate是linux下的一個用於對日誌檔案分割,壓縮或者傳送郵件的的工具。當系統中的某個程序會定期生成大量的log檔案時,logrotate可以定期(每天一次,每週一次等等)自動化的將這些log檔案進行分割壓縮,刪除等操作。 一般情況下,logr
logrotate 日誌分割工具
由於tomcat 產生的日誌量過大,有資料顯示"當Tomcat的日誌檔案catalina.out的大小大於2GB時,Tomcat程式崩潰時將有可能會啟動失敗並且不會有任何錯誤資訊提示" 目前,以tomcat的輸出日誌catalina.out 的量非常大,需要對其
logrotate---日誌分割
logrotate命令用於對系統日誌進行輪轉、壓縮和刪除,也可以將日誌傳送到指定郵箱。使用logrotate指令,可讓你輕鬆管理系統所產生的記錄檔案。每個記錄檔案都可被設定成每日,每週或每月處理,也能在檔案太大時立即處理。您必須自行編輯,指定配置檔案,預設的配置檔案存放在/etc/logrotate.conf
logrotate日誌管理工具
日誌實在是太有用了,它記錄了程式執行時各種資訊。通過日誌可以分析使用者行為,記錄執行軌跡,查詢程式問題。可惜磁碟的空間是有限的,就像飛機裡的黑匣子,記錄的資訊再重要也只能記錄最後一段時間發生的事。為了節省空間和整理方便,日誌檔案經常需要按時間或大小等維度分成多份,刪除時間久遠的日誌檔案。這就是通常說的
伺服器日誌過大,日誌分割工具--cronolog
本文將介紹一款日誌分割軟體cronolog。日誌對於每位從事IT技術領域工作的人員來說都是相當重要的,對於系統管理員來說,系統日誌、系統服務的日誌以及應用軟體的日誌是他們每天都需要關注的,從日誌中可以發現系統存在的問題以及一些危險的徵兆等等;對於開發人員來說,應用軟體日誌、debug日誌對於瞭解系統當時的環
Linux自帶 Logrotate 日誌切割工具配置詳解
多少 日誌丟失 logger 管理工具 utm 拷貝 刪除 code 系統 Logrotate 程序是一個日誌文件管理工具。用於分割日誌文件,壓縮轉存、刪除舊的日誌文件,並創建新的日誌文件,下面就對logrotate日誌輪轉的記錄: 1.1 Logrotate配置文件介紹
linux日誌分割處理工具logrotate
logrotate 程式是一個日誌檔案管理工具。用來把舊的日誌檔案刪除,並建立新的日誌檔案,我們把它叫做“轉儲”。我們可以根據日誌檔案的大小,也可以根據其天數來轉儲,這個過程一般通過 cron 程式來執行。 logrotate 程式還可以用於壓縮日誌檔案,以及傳送日誌到指定
Nginx日誌切割工具——logrotate
1、安裝 logrotate是Linux系統自帶,無需安裝 2、配置 進入【/etc/logrotate.d/nginx】檔案修改配置 # 需要備份的日誌路勁,一個或多個都可以 /data/logs/nginx1/*.log /data/logs/nginx2/*.log { daily ro
關於使用logrotate對nginx的日誌分割時資料夾許可權問題解答
在使用logrotate對nginx的日誌進行分割的時候系統報錯,error資訊:error: skipping "/var/log/nginx/access.log" because parent directory has insecure permissions (It
使用 logrotate 進行 nginx 日誌分割
使用logrotate指令,可讓你輕鬆管理系統所產生的記錄檔案。它提供自動替換,壓縮,刪除和郵寄記錄檔案,每個記錄檔案都可被設定成每日,每週或每月處理,也能在檔案太大時立即處理。您必須自行編輯,指定配置檔案,預設的配置檔案存放在/etc目錄下,檔名稱為logro
linux日誌切割工具 logrotate
centos-7.6系統預設安裝logrotate,預設的配置檔案: /etc/logrotate.conf /etc/logro
NLog日誌管理工具
控制臺應用程序 自動 esp log sdn clas 輸出 ons nbsp 一、通過VS建立一個控制臺應用程序。 二、打開程序包管理器控制臺。具體操作如下:【工具】》【庫程序包管理器】》【程序包管理器控制臺】。 三、在程序包管理器控制臺下輸入命令:Insta
Logwatch日誌分析工具
logwatch日誌監控介紹:Logwatch是使用 Perl 開發的一個日誌分析工具。Logwatch能夠對Linux 的日誌文件進行分析,並自動發送mail給相關處理人員,可定制需求。Logwatch的mail功能是借助宿主系統自帶的mail server 發郵件的,所以系統需安裝mail server
(工具類)Linux筆記之終端日誌記錄工具script
工具類 article 空間 post 令行 有時 可能 關於 edit 在學習Linux時,有時候終端的打印消息對於我們很重要,可是終端顯示也是有一定的緩沖空間的。當信息打印許多時,前面的信息就會被覆蓋掉。所以這裏網上搜索了一下這方面的介紹。現總結例如以下:
Tomcat 的 catalina.out 日誌分割
tom ins 重啟 清理 log ots 安裝 str nbsp 一、背景 Tomcat 的 catalina.out 日誌量不斷增加,占用空間較大,且默認是不滾動的。因此,需要對其進行日誌分割,並進行清理。 本文選用 Cronolog 對其進行分割。 二、安裝
Tomcat7 catalina.out 日誌分割
tomcat7 catalina.out 日誌分割安裝過程如下:下載(最新版本) # wget http://cronolog.org/download/cronolog-1.6.2.tar.gz2、解壓縮 # tar zxvf cronolog-1.6.2.tar.gz3、進入cronolog
Nginx日誌分割腳本
nginx日誌分割腳本1.Nginx日誌分割腳本1:#!/bin/shLOGS_PATH=/usr/local/nginx/logsYESTERDAY=$(date -d "yesterday" +%Y-%m-%d)mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_
pt-query-digest查詢日誌分析工具
tcp 技術 一段時間 ext 所在 mda pop json sdn 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 工具簡介 pt-query-digest是用於分析mysql慢查詢的一個工具,它可以分析binlog、General log、slo
【Haproxy】實現日誌分割
haproxy緊接著上一篇的開啟日誌記錄來做後續的日誌分割,我沒有涉及到安裝任何軟件,但是需要借助crond計劃任務來實現制作分割腳本[[email protected] ~]# vim /etc/haproxy/haproxy_log_cut.sh #!/bin/bash # this is sc
慢查詢日誌分析工具之pt-query-digest
lan git bash pre 日誌分析 windows images git 所有 curl 簡介 pt-query-digest 是用於分析mysql慢查詢的一個工具,與mysqldumpshow工具相比,py-query_digest 工具的分析結果更