您好,登錄后才能下訂單哦!
這篇文章主要介紹“Tomcat日志自動分割的方法有哪些”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Tomcat日志自動分割的方法有哪些”文章能幫助大家解決問題。
修改前的 tomcat 都是將所有數據保存在一個日志文件 catalina.out 中,平時實驗環境下沒有什么問題,但是在生產環境中,由于數據量巨大,會導致日志查看困難,因此將日志通過某些方法進行自動分割,而修改后的 tomcat 將會按“日”保存日志文件,文件格式例如:catalina.2022-6-10.out
官網:http://cronolog.org
RPM包下載方法:在rpmfind.net上搜索cronolog選擇對應RPM包復制下載鏈接即可
下戟安裝cronolog:
[root@localhost ~]# yum install https://rpmfind.net/linux/epel/7/x86_64/Packages/c/cronolog-1.6.2-14.el7.x86_64.rpm -y
查看 cronolog 安裝后所在目錄(驗證安裝是否成功):
[root@localhost logs]# whereis cronolog cronolog: /usr/sbin/cronolog /usr/share/man/man1/cronolog.1m.gz
編輯 bin/catalina.sh 文件(tomcat的啟動文件):
1.找到下面行并把它用#注釋掉 touch "$CATALINA_BASE"/logs/catalina.out 在新 Tomcat7 的 bin/catalina.sh 文件要注釋的行是 touch "SCATALINA_OUT" 2.替換下面的行(有兩處,不過一般在-security 中的那一行不需要去關注,不妨兩處全替換了): org.apache.catalina.startup.Bootstrop "$@" start \ >> "$CATALINA_BASE"/logs/catalina.out 2>&1 & 修改為 org.apache.catalina.startup.Bootstrap "$@" start \ 2>&1 | /usr/local/sbin/cronolog "$CATALINA_BASE" /logs/catalina-%Y-%m-%d.out>>/dex/null & 在新 Tomcat7 的 bin/catalina.sh 中需要替換的行是 >> "$CATALINA_OUT" 2>&1 "&" 替換后該行的內容與上面是一樣的 注:為什么 Tomcat7 后會有所不同,因為在它的 catalina.sh 文件中有如下定義 CATALINA_OUT="$CATALINA_BASE" /logs/catalina.out 3.保存 catalina.sh 文件并重啟 Tomcat 即可 [root@localhost ~]# systemctl restart tomcat.service
查看日志分割結果:
[root@localhost ~]# ll -d /usr/local/tomcat/logs/catalina-2022-06-10.out -rw-r--r-- 1 tomcat tomcat 106331 Jun 10 16:51 /usr/local/tomcat/logs/catalina-2022-06-10.out #可以看到已經存在
`rotatelogg` 是 `apache` 自帶的工具
查看rotatelogs屬于哪個包(確認是否包含在apache里面):
#通過觀察,確認rotatelegs包含在apache包內,因此僅需要安裝httpd即可順帶安裝rotatelegs [root@localhost logs]# yum whatprovides */rotatelogs Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.dgut.edu.cn * extras: mirrors.dgut.edu.cn * updates: mirrors.dgut.edu.cn httpd-2.4.6-95.el7.centos.x86_64 : Apache HTTP Server Repo : base Matched from: Filename : /usr/sbin/rotatelogs httpd-2.4.6-97.el7.centos.x86_64 : Apache HTTP Server Repo : updates Matched from: Filename : /usr/sbin/rotatelogs httpd-2.4.6-97.el7.centos.1.x86_64 : Apache HTTP Server Repo : updates Matched from: Filename : /usr/sbin/rotatelogs httpd-2.4.6-97.el7.centos.2.x86_64 : Apache HTTP Server Repo : updates Matched from: Filename : /usr/sbin/rotatelogs httpd-2.4.6-97.el7.centos.4.x86_64 : Apache HTTP Server Repo : updates Matched from: Filename : /usr/sbin/rotatelogs httpd-2.4.6-97.el7.centos.5.x86_64 : Apache HTTP Server Repo : updates Matched from: Filename : /usr/sbin/rotatelogs
安裝httpd:
[root@localhost ~]# yum install httpd -y
查看 rotatelogs 安裝后所在目錄(驗證安裝是否成功):
[root@localhost ~]# whereis rotatelogs rotatelogs: /usr/sbin/rotatelogs /usr/share/man/man8/rotatelogs.8.gz
編輯 bin/catalina.sh 文件(tomcat的啟動文件):
1.找到下面行并把它用#注釋掉 touch "$CATALINA_BASE"/logs/catalina.out 在新 Tomcat7 的 bin/catalina.sh 文件要注釋的行是 touch "SCATALINA_OUT" 2.替換下面的行(有兩處,不過一般在-security 中的那一行不需要去關注,不妨兩處全替換了): org.apache.catalina.startup.Bootstrop "$@" start \ >> "$CATALINA_BASE"/logs/catalina.out 2>&1 & 修改為 org.apache.catalina.startup.Bootstrap "$@" start \ 2>&1 | /usr/sbin/rotatelogs "$CATALINA_BASE"/logs/catalina-%Y%m%d.out 86400 480 & #為了與上方區分,這里日志的名字格式中,日期的年、月、日沒有使用“-”隔開 在新 Tomcat7 的 bin/catalina.sh 中需要替換的行是 >> "$CATALINA_OUT" 2>&1 "&" 替換后該行的內容與上面是一樣的 注:為什么 Tomcat7 后會有所不同,因為在它的 catalina.sh 文件中有如下定義 CATALINA_OUT="$CATALINA_BASE" /logs/catalina.out 3.保存 catalina.sh 文件并重啟 Tomcat 即可 [root@localhost ~]# systemctl restart tomcat.service
查看日志分割結果:
[root@localhost ~]# ll -d /usr/local/tomcat/logs/catalina-20220610.out -rw-r--r-- 1 tomcat tomcat 105380 Jun 10 17:22 /usr/local/tomcat/logs/catalina-20220610.out #可以看到已經存在(日志格式為了區分,其中日期的年、月、日沒有使用“-”隔開,上方有提及)
Linux環境下切割日志腳本
將此腳本放到 tomcat 下的 bin 目錄,在 crontab中自動執行,shell腳本如下: #!/bin/bash cd `dirname $0` d=`date +%Y-%m-%d` d7=`date -d'7 day ago' +%Y-%m-%d' cd ../logs/ cp catalina.out catalina.out.$aegqsqibtmh echo "" > catalina.out rm -rf catalina.out.${d7}
關于“Tomcat日志自動分割的方法有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。