Linux/Centos Tomcat 配置日志切分以及脚本自动清理
Tomcat是Apache軟件基金會(Apache Software Foundation)的Jakarta項目中的一個核心項目,由Apache,Sun和其他一些公司及個人共同開發而成。由于有了Sun的參與和支持,最新的Servlet和JSP規范總是能在Tomcat中得到體現,Tomcat 5支持最新的Servlet 2.4和JSP 2.0規范。因為Tomcat技術先進,性能穩定,而且免費,因而深受Java愛好者的喜愛并得到了部分軟件開發商的認可,成為目前比較流行的Web應用服務器。
Tomcat服務器是一個免費的開放源代碼的Web應用服務器,屬于輕量級應用服務器,在中小型系統和并發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP程序的首選。學者來說,可以這樣認為,當在一臺機器上配置好Apache服務器,可運用它響應HTML(標準通用標記語言下的一個應用)頁面的訪問請求。實際上Tomcat是Apache服務器的擴展,但運行時它是獨立運行的,所以當你運行tomcat時,它實際上作為一個與Apache獨立的進程單獨運行的。
訣竅是,當配置正確時,Apache為HTML頁面服務,而Tomcat實際上運行JSP頁面和Servlet。另外,Tomcat和IIS等Web服務器一樣,具有處理HTML頁面的功能,另外它還是一個Servlet和JSP容器,獨立的的Servlet容器是Tomcat的的默認模式。不過,Tomcat的處理靜態HTML的能力不如Apache的服務器。目前Tomcat的最新版本為9.0。
在很多時候我們使用的Tomcat的時候,Tomcat的控制臺日志會存放在Tomcat的安裝目錄下的日志文件夾下,日志文件名為catalina.out中,
這個日志文件如果不清理的話,會一直增長,在我以前的公司,由于疏忽,導致在生產上的這個日志增長到了好幾十個GB,有了錯誤要看日志,根本打不開,當時使用的Linux的SED命令截取的日志,不過比較麻煩,后來經過看了一下網上的文章,發現這個日志是可以切分的,所以下面就給大家講解一下如何切割日志,并且附帶了腳本自動清理。
Tomcat的日志切分配置
上傳的cronolog-1.6.2.tar.gz,到Linux的服務器的/software/目錄下,文中涉及到的軟件包,可以自己百度下載,或者加最下方微信,我免費發給你也可以
#cd /software/
#tar -zxvf cronolog-1.6.2.tar.gz
#cd cronolog-1.6.2
#./configure
#make
#make install
安裝完之后呢我們使用命令查看命令路徑
#which cronolog
如圖所示:命令路徑在:在/usr/local/sbin/cronolog
使用tomcat用戶修改tomcat腳本如果你的tomat是用root用戶啟動,那么直接用root就好,但是生產環境起應用不建議用root用戶,存在風險,只是建議。
修改tomcat/bin/catalina.sh(保險起見,修改之前先備份一下)
#touch "$CATALINA_OUT"
if[ "$1" = "-security" ] ; then
if [ $have_tty -eq 1 ]; then
?echo?"Using?Security?Manager"fi
shift
eval "\"$_RUNJAVA\"""\"$LOGGING_CONFIG\"" $LOGGING_MANAGER $JAVA_OPTS$CATALINA_OPTS \
?-Djava.endorsed.dirs="\"$JAVA_ENDORSED_DIRS\""-classpath?"\"$CLASSPATH\""?\-Djava.security.manager?\-Djava.security.policy=="\"$CATALINA_BASE/conf/catalina.policy\""\-Dcatalina.base="\"$CATALINA_BASE\""?\-Dcatalina.home="\"$CATALINA_HOME\""?\-Djava.io.tmpdir="\"$CATALINA_TMPDIR\""?\org.apache.catalina.startup.Bootstrap“$?@”start?2>&1?\#這行是新添加的|?/?usr?/?local?/?sbin?/?cronolog“$?CATALINA_BASE”/logs/catalina.%Y-%m-%d.out?>>?/?dev?/?null&#這行是新添加的#org.apache.catalina.startup.Bootstrap“$ @”start \#這行原來有,注釋掉
#>>“$ CATALINA_OUT”2>&1“&”#這行原來,有注釋掉
??elseeval“\”$?_?RUNJAVA?\“”“\”$?LOGGING_CONFIG?\“”$?LOGGING_MANAGER?$?JAVA_OPTS?$?CATALINA_OPTS?\-Djava.endorsed.dirs?=“\”$?JAVA_ENDORSED_DIRS?\“”?-?classpath“\”$?CLASSPATH?\“”\-Dcatalina.base?=“\”$?CATALINA_BASE?\“”\-Dcatalina.home?=“\”$?CATALINA_HOME?\“”\-Djava.io.tmpdir?=“\”$?CATALINA_TMPDIR?\“”\org.apache.catalina.startup.Bootstrap“$?@”start?2>&1?\#這行是新添加的??|?/?usr?/?local?/?sbin?/?cronolog“$?CATALINA_BASE”/logs/catalina.%Y-%m-%d.out?>>?/?dev?/?null&???#這行是新添加的#org.apache.catalina.startup.Bootstrap“$ @”start \#這行原來有,注釋掉
#>>“$ CATALINA_OUT”2>&1“&”#這行原來有,注釋掉
修改完之后重啟把tomat,就會生成一個以當天日期為后綴的問件,如下圖所示:
日志切割完成后,我們就可以做日志清理了下面是日志清理腳本
#!/bin/bash
#clear tomcat logss
DOMAIN_HOME =“/ app / tomcat” #定義tomcat所在路徑
LogFileName = catalina.date +%Y-%m-%d -d'-5 days'.out #處理多少天之前的tomcat日志可以自定義
cd $ {DOMAIN_HOME} /logs
if [-f $ {DOMAIN_HOME}/logs/catalina.date +%Y-%m-%d -d'-1 days'.out] #壓縮多少天之前的日志
then
if [-f $ {DOMAIN_HOME}/logs/${LogFileName}]
the
/usr/bin/bzip2 ${DOMAIN_HOME}/logs/${LogFileName}
/usr/bin/find . -name“*”-type f -mtime +21 -exec rm -rf {} \; #刪除21天前的文件?
fi
fi
exit 0
腳本定義好以后,我們把腳本放在服務器目錄上的/root/scripts/目錄下,叫做clear_tomcat.sh
把腳本內容復制進clear_tomcat.sh文件里,使用命令:chmod 755 clear_tomcat.sh給執行權限
然后呢,我們定義一個計劃任務
#crontab -e
加入下面一行
30 22?* / bin / sh /root/scripts/clear_tomcat.sh >> / dev / null&
然后保存退出就可以了,上面的意思是每天晚上十點半的時候執行腳本,請缺人的crond服務在運行中,腳本才可以正常運行
這樣的話一天一個文件,如果發生錯誤看后臺日志也好查找一些,而且不需要擔心日志文件一直增長的問題。
轉載于:https://blog.51cto.com/13801998/2129798
總結
以上是生活随笔為你收集整理的Linux/Centos Tomcat 配置日志切分以及脚本自动清理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 酷狗音乐如何邀请好友一起听歌
- 下一篇: 新款MacBook Air或四月发布 配