国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 服務器 > Web服務器 > 正文

Logrotate實現Catalina.out日志每倆小時切割示例

2024-09-01 13:56:37
字體:
來源:轉載
供稿:網友

一.Logrotate工具介紹

Logrotate是一個日志文件管理工具,它是Linux默認自帶的一個日志切割工具。用來把舊文件輪轉、壓縮、刪除,并且創建新的日志文件。我們可以根據日志文件的大小、天數等來轉儲,便于對日志文件管理,一般都是通過cron計劃任務來完成的,讓日志切割實現按小時分割,按天分割等。

二.Logrotate運行機制

系統會定時運行logrotate,一般是每天一次。系統是這么實現按天執行的。crontab會每天定時執行/etc/cron.daily目錄下的腳本,而這個目錄下有個文件叫logrotate。

[root@test01 ~]# cat /etc/cron.daily/logrotate#!/bin/sh/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.confEXITVALUE=$?if [ $EXITVALUE != 0 ]; then  /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"fiexit 0

實際運行時,Logrotate會調用配置文件/etc/logrotate.conf

三.Logrotate的組成

/usr/sbin/logrotate #程序所在位置;

/etc/cron.daily/logrotate #默認讓Cron每天執行logrotate一次;

/etc/logrotate.conf #全局配置文件;

/etc/logrotate.d/ #應用自個的配置文件存放目錄,覆蓋全局配置;

注意:logrotate.d 是一個目錄,該目錄里的所有文件都會被主動的讀入/etc/logrotate.conf中執行。另外,如果/etc/logrotate.d/里面的文件中沒有設定一些細節,則會以/etc/logrotate.conf這個文件的設定來作為默認值。

四.Logrotate的命令格式

logrotate [OPTION...] <configfile>
-d, --debug :debug模式,測試配置文件是否有錯誤。
-f, --force :強制轉儲文件。
-m, --mail=command :壓縮日志后,發送日志到指定郵箱。
-s, --state=statefile :使用指定的狀態文件。
-v, --verbose :顯示轉儲過程。

例如:想強行切割日志文件,不等logrotate切割。

[root@test01 ~]# /usr/sbin/logrotate -vf /etc/logrotate.d/tomcat #我是用來測試用的嘿嘿注意:CentOS7 命令是在/usr/sbin/里。

五.常用配置參數說明

Logrotate功能的實現,最重要的就是它的配置參數

下面介紹下它常用的配置參數:

 

compress

啟用壓縮,指的是輪替后的舊日志,這里默認用的是gzip壓縮的

daily

每天輪替

dateext

使用當期日期作為命名格式

dateformat .%s

 配合dateext使用,緊跟在下一行出現,定義文件切割后的文件名,必須配合dateext使用,只支持 %Y %m %d %s 這四個參數

ifempty

即使日志文件是空的也輪替

mail

將輪替后的文件發送到指定E-mail地址

copytruncate

用于還在打開中的日志文件,把當前日志備份并截斷,是先拷貝再清空的方式,拷貝和清空之間有一個時間差,可能會丟失部分日志數據。

monthly

一個月輪替一次

nocompress

如果在logrotate.conf中啟用了壓縮,這里是做不用壓縮的參數

nomail

不發送郵件到任何地址

notifempty

如果日志是空的就不輪替(也就是空日志不切割)

olddir + 目錄

輪替后日志文件放入指定的目錄,必須和當前日志文件在同一個文件系統

rotate +次數

輪替最多保留之前的數據幾次,超出的將被刪除或郵件接收,設為0則不保存

size size

當日志增長到指定大小的時候開始輪替

weekly

如果當前的星期幾比上次輪替的星期幾少,或者過了一個多星期,就會發生輪替通常是在每周的第一天輪替,如果logrotate不是每天運行的,會在第一次有機會時進行輪替

yearly

如果當前年份不同于上次輪替的年份,則進行日志輪替

Missingok

如果日志丟失,不報錯繼續滾動下一個日志

 

六.安裝配置Logrotate

#yum安裝下

[root@test01 ~]# yum -y install logrotate

#機器已經裝好tomcat,下面配置切割tomcat日志的配置文件

[root@test01 ~]# vim /etc/logrotate.d/tomcat

注意:logrotate的配置文件是/etc/logrotate.conf,通常不需要對它進行修改。

日志文件的切割輪循設置在獨立的配置文件中,它們是放在/etc/logrotate.d/目錄下的。

[root@test01 ~]# mkdir -p /var/log/tomcat/oldlog[root@test01 ~]# cat /etc/logrotate.d/tomcat/usr/local/tomcat8/logs/catalina.out { #要切割的日志路徑,如果是多個就用空格分隔  notifempty   #如果日志是空的就不輪替(也就是空日志不切割)  rotate 5000  #輪替最多保留之前的數據5000次  missingok   #如果日志丟失,不報錯繼續滾動下一個日志  compress    #啟用壓縮,指的是輪替后的舊日志,這里默認用的是gzip壓縮的  dateext    #使用當期日期作為命名格式  dateformat .%Y%m%d-%H點  #配合dateext使用,緊跟在下一行出現,定義文件切割后的文件名,必須配合dateext使用,只支持 %Y %m %d %s  olddir /var/log/tomcat/oldlog #輪替后日志文件放入指定的目錄 }

注意:我這個配置里沒有設置多久切割一次,但是它也是一天切割一次,因為當/etc/logrotate.d/tomcat這個文件沒有配置時,默認是每天定時執行/etc/cron.daily/logrotate這個文件,這個文件是一天一次的。

#強制執行切割,查看/var/log/tomcat/oldlog下是否有日志

[root@test01 ~]# /usr/sbin/logrotate -vf /etc/logrotate.d/tomcatreading config file /etc/logrotate.d/tomcatolddir is now /var/log/tomcat/oldlogAllocating hash table for state file, size 15360 BHandling 1 logsrotating pattern: /usr/local/tomcat8/logs/catalina.out forced from command line (5000 rotations)olddir is /var/log/tomcat/oldlog, empty log files are not rotated, old logs are removedconsidering log /usr/local/tomcat8/logs/catalina.out log needs rotatingrotating log /usr/local/tomcat8/logs/catalina.out, log->rotateCount is 5000Converted ' .%Y%m%d-%H點' -> '.%Y%m%d-%H點'dateext suffix '.20181226-15點'glob pattern '.[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]-[0-9][0-9]點'glob finding old rotated logs failedfscreate context set to unconfined_u:object_r:usr_t:s0renaming /usr/local/tomcat8/logs/catalina.out to /var/log/tomcat/oldlog/catalina.out.20181226-15點compressing log with: /bin/gzipset default create context to unconfined_u:object_r:usr_t:s0set default create context

#查看切割結果

Logrotate,Catalina.out,日志,切割

#把之前切割的刪除了,因為再定時切割文件是相同的,還是catalina.out.20181226-15點.gz這個文件,所以不會切割成功。

[root@test01 ~]# rm -rf /var/log/tomcat/oldlog/catalina.out.20181226-15點.gz [root@test01 ~]# ls /var/log/tomcat/oldlog/[root@test01 ~]#

#設置定時任務,每一分鐘切割一次(注意:日志里要有內容,因為前面定義空的日志文件是不切割的)

[root@test01 ~]# crontab –e*/1 * * * * /usr/sbin/logrotate -vf /etc/logrotate.d/tomcat >>/var/log/tomcat/oldlog/cutting.log

#每倆小時切割一次

[root@test02 ~]# crontab -l0 */2 * * * /usr/sbin/logrotate -vf /etc/logrotate.d/tomcat >> /root/chenjiaxin/cutting.log

#查看定時切割的結果

Logrotate,Catalina.out,日志,切割

當然,上面設置一分鐘切割一次,是為了實驗能盡快看到效果。實際是需要根據公司需要來設置多久來切割一次日志的!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到服務器教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 扬州市| 乡宁县| 台北市| 新邵县| 万荣县| 五原县| 扬中市| 贡觉县| 建阳市| 台前县| 德州市| 枣庄市| 阿拉善右旗| 蓬溪县| 铁力市| 延津县| 荆州市| 左云县| 舞阳县| 张家港市| 西林县| 海原县| 荥经县| 内乡县| 永靖县| 神农架林区| 田阳县| 曲水县| 平阴县| 城市| 侯马市| 邯郸市| 佛坪县| 景东| 中西区| 奎屯市| 石狮市| 江永县| 凤阳县| 泽库县| 华安县|