共计 3641 个字符,预计需要花费 10 分钟才能阅读完成。
使用 cronolog 工具切分 Tomcat 的 catalina.out 日志文件
普通用户下载、安装 cronolog
[tomcat@localhost ~]$ tar -xf cronolog-1.6.2.tar.gz
[tomcat@localhost ~]$ cd cronolog-1.6.2/
[tomcat@localhost cronolog-1.6.2]$ ./configure –prefix=/home/tomcat/cronolog
make
make install
root 用户下下载、安装 cronolog
[root@localhost ~]# rpm -qa |grep cronolog
[root@localhost ~]# tar zxvf cronolog-1.6.2.tar.gz
[root@localhost ~]# cd cronolog-1.6.2
[root@localhost cronolog-1.6.2]# ./configure
[root@localhost cronolog-1.6.2]# make && make install
[root@localhost cronolog-1.6.2]# which cronolog
/usr/local/sbin/cronolog
在普通用户的家目录下编辑.bash_profile 文件里添加“$HOME/cronolog/sbin”添加 cronolog 的安装路径
[tomcat@localhost ~]$ vi .bash_profile
# .bash_profile
# Get the aliases and functions
if [-f ~/.bashrc]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin:$HOME/cronolog/sbin
export PATH
用 which cronolog 可以查到安装的路径,这个路径待会在修改 catalina.sh 时会用到。
修改 catalina.sh 文件
将 186 行【CATALINA_OUT=”$CATALINA_BASE”/logs/catalina.out】修改成 187 行【CATALINA_OUT=”$CATALINA_BASE”/logs/opres.%Y-%m-%d.out】内容,日志名可以自行定义;
注释掉 370 行【touch “$CATALINA_OUT”】;
383、384 行【
org.apache.catalina.startup.Bootstrap “$@” start \
>> “$CATALINA_OUT” 2>&1 “&”】替换成 385、386 行【
org.apache.catalina.startup.Bootstrap “$@” start 2>&1 \
| /home/tomcat/cronolog/sbin/cronolog “$CATALINA_OUT” >> /dev/null 2>&1 &
】;
396、397 行【
org.apache.catalina.startup.Bootstrap “$@” start \
>> “$CATALINA_OUT” 2>&1 “&”
】替换成 394、395 行【
org.apache.catalina.startup.Bootstrap “$@” start 2>&1 \
| /home/tomcat/cronolog/sbin/cronolog “$CATALINA_OUT” >> /dev/null 2>&1 &
】;最后一步 (394、395) 要注意如果原本的命令只是注释掉,替换的内容一定要在原本内容的上面,不然无法正常启动, 前面的替换 (383、384) 位置没有关系的
97 Java_OPTS=”-Xms512m -Xmx1024m -Xss1024K -XX:PermSize=256m -XX:MaxPermSize=512m”
98
99 # OS specific support. $var _must_ be set to either true or false.
185 if [-z “$CATALINA_OUT”] ; then
186 # CATALINA_OUT=”$CATALINA_BASE”/logs/catalina.out
187 CATALINA_OUT=”$CATALINA_BASE”/logs/opres.%Y-%m-%d.out
370 #touch “$CATALINA_OUT”
371 if [“$1” = “-security”] ; then
372 if [$have_tty -eq 1]; then
373 echo “Using Security Manager”
374 fi
375 shift
376 eval “\”$_RUNJAVA\”” “\”$LOGGING_CONFIG\”” $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
377 -Djava.endorsed.dirs=”\”$JAVA_ENDORSED_DIRS\”” -classpath “\”$CLASSPATH\”” \
378 -Djava.security.manager \
379 -Djava.security.policy==”\”$CATALINA_BASE/conf/catalina.policy\”” \
380 -Dcatalina.base=”\”$CATALINA_BASE\”” \
381 -Dcatalina.home=”\”$CATALINA_HOME\”” \
382 -Djava.io.tmpdir=”\”$CATALINA_TMPDIR\”” \
383 # org.apache.catalina.startup.Bootstrap “$@” start \
384 # >> “$CATALINA_OUT” 2>&1 “&”
385 org.apache.catalina.startup.Bootstrap “$@” start 2>&1 \
386 | /home/tomcat/cronolog/sbin/cronolog “$CATALINA_OUT” >> /dev/null 2>&1 &
387
388 else
389 eval “\”$_RUNJAVA\”” “\”$LOGGING_CONFIG\”” $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS \
390 -Djava.endorsed.dirs=”\”$JAVA_ENDORSED_DIRS\”” -classpath “\”$CLASSPATH\”” \
391 -Dcatalina.base=”\”$CATALINA_BASE\”” \
392 -Dcatalina.home=”\”$CATALINA_HOME\”” \
393 -Djava.io.tmpdir=”\”$CATALINA_TMPDIR\”” \
394 org.apache.catalina.startup.Bootstrap “$@” start 2>&1 \
395 | /home/tomcat/cronolog/sbin/cronolog “$CATALINA_OUT” >> /dev/null 2>&1 &
396 # org.apache.catalina.startup.Bootstrap “$@” start \
397 # >> “$CATALINA_OUT” 2>&1 “&”
398 fi
可以通过./catalina.sh start 来查看配置文件是否正确;这样在 /usr/local/tomcat/logs 每天会自动生成 opres.%Y-%m-%d.out 文件,下面我们要做的是定期清理这些过期的文件,我们可以通过 crontab 来实现
[tomcat@localhost ~]$ crontab -e
30 3 * * * /bin/find /home/tomcat/openapi/logs/ -mtime +7 -type f -name “opres*.*.out” -exec /bin/rm -f {} \;
[tomcat@localhost ~]$ crontab -l
30 3 * * * /bin/find /home/tomcat/openapi/logs/ -mtime +7 -type f -name “opres*.*.out” -exec /bin/rm -f {} \;
每天凌晨 3 点半执行清除 7 天之前过期日志
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-03/142408.htm