#!/bin/bash maxday="10" function logging(){ for instance in `ls /data/tomcat/`;do echo "${instance}" /data/tomcat/$instance/bin/version.sh | awk '/Server number/{print $NF}' version=$(/data/tomcat/$instance/bin/version.sh | awk '/Server number/{print $NF}' |sed 's/\.//g') if [ $version -lt 80000 ];then log_encoding_str="org.apache.juli.FileHandler.prefix" log_maxdays_str="org.apache.juli.FileHandler.maxDays" else log_encoding_str="org.apache.juli.AsyncFileHandler.encoding" log_maxdays_str="org.apache.juli.AsyncFileHandler.maxDays" fi for logname in 1catalina 2localhost 3manager 4host-manager;do echo $logname grep -q "${logname}.${log_maxdays_str}" /data/tomcat/$instance/conf/logging.properties if [ $? = 0 ];then sed -i "s/^${logname}.${log_maxdays_str}.*/${logname}.${log_maxdays_str} = ${maxday}/g" /data/tomcat/$instance/conf/logging.properties else sed -i "/${logname}.${log_encoding_str}/a${logname}.${log_maxdays_str} = ${maxday}" /data/tomcat/$instance/conf/logging.properties fi grep "${logname}.${log_maxdays_str}" /data/tomcat/$instance/conf/logging.properties done echo "" done } function serverxml(){ for instance in `ls /data/tomcat/`;do echo "${instance}" grep -q "maxDays=" /data/tomcat/$instance/conf/server.xml if [ $? = 0 ];then sed -i "s/.*maxDays=.*/\t\t\t maxDays=\"${maxday}\" \/>/g" /data/tomcat/$instance/conf/server.xml else sed -i "s/.*pattern=\"%.*/\t\t\t pattern=\"\%h \%l \%u \%t \"\;\%r\"\; \%s \%b\"/g" /data/tomcat/$instance/conf/server.xml sed -i "/.*pattern=\"\%h.*/a\\\t\t\t maxDays=\"${maxday}\" \/>" /data/tomcat/$instance/conf/server.xml fi grep "pattern=\"%" /data/tomcat/$instance/conf/server.xml grep "maxDays=" /data/tomcat/$instance/conf/server.xml done } function logrotate(){ cat << EOOOOF > /etc/logrotate.d/tomcat /data/tomcat/*/logs/catalina-daemon.out { daily rotate ${maxday} dateext compress missingok notifempty copytruncate } /data/tomcat/*/log4j2Logs/*.log { daily rotate ${maxday} dateext compress missingok copytruncate } EOOOOF } logging serverxml logrotate