Linux下用cronolog切割Tomcat日志并删除指定天数前的日志记录 推荐
2017-03-30 15:11
831 查看
使用cronolog工具切分Tomcat的catalina.out日志文件
普通用户下载、安装cronolog
在普通用户的家目录下编辑.bash_profile文件里添加“$HOME/cronolog/sbin”添加cronolog的安装路径
[tomcat@localhost ~]$ vi .bash_profile
修改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)位置没有关系的
或者
#每天凌晨3点执行删除前7天的所有tomcat生成的日志文件(切割的日志名字与原告先的一样只是加了日期catalina.%Y-%m-%d.out)
命令说明:
/var/www/ 是查找文件的路径。
-type f 是指定文件类型为普通文件。
-mtime +30 是指修改时间距离现在30天的文件。
-exec rm -f 指执行删除匹配出来的文件并且不提示,有的系统需要带单引号,有的不需要。将以上命令,添加到crontab中,即可实现定期删除了。
比如,每天的1点30分钟实现删除,可以这样:
#每天凌晨1点执行删除前30天的日志文件
普通用户下载、安装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 installroot用户下下载、安装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天之前过期日志
或者
#每天凌晨3点执行删除前7天的所有tomcat生成的日志文件(切割的日志名字与原告先的一样只是加了日期catalina.%Y-%m-%d.out)
0 3 * * * /bin/find /opt/tomcat -mtime +7 -type f -name"catalina.*.out" -exec /bin/rm -rf {} \; 0 3 * * * /bin/find /opt/tomcat -mtime +7 -type f -name "catalina.*.log"-exec /bin/rm -rf {} \; 0 3 * * * /bin/find /opt/tomcat -mtime +7 -type f -name "host-manager.*.log"-exec /bin/rm -rf {} \; 0 3 * * * /bin/find /opt/tomcat -mtime +7 -type f -name"localhost.*.log" -exec /bin/rm -rf {} \; 0 3 * * * /bin/find /opt/tomcat -mtime +7 -type f -name" manager.*.log" -exec /bin/rm -rf {} \; 上面有些觉得写的太多,可以简为写成如下: 0 3 * * * /bin/find /opt/tomcat/logs/* -mtime +7 -exec /bin/rm -rf {} \;
命令说明:
/var/www/ 是查找文件的路径。
-type f 是指定文件类型为普通文件。
-mtime +30 是指修改时间距离现在30天的文件。
-exec rm -f 指执行删除匹配出来的文件并且不提示,有的系统需要带单引号,有的不需要。将以上命令,添加到crontab中,即可实现定期删除了。
比如,每天的1点30分钟实现删除,可以这样:
#每天凌晨1点执行删除前30天的日志文件
0 1 * * * find /aa/tomcat6.0/logs/* -mtime +30 -exec rm -f {} \;
相关文章推荐
- Linux下定时切割Tomcat日志并删除指定天数前的日志记录 推荐
- Linux下定时切割Tomcat日志并删除指定天数前的日志记录
- zabbix通过jmx监控tomcat, Nginx日志统计方案全过程,切割nginx和tomcat日志并删除指定天数前的日志记录
- Linux下定时切割nginx日志并删除指定天数前的日志记录 推荐
- Linux下定时切割Mongodb数据库日志并删除指定天数前的日志记录
- Linux下定时切割Nginx访问日志并删除指定天数前的日志记录
- Linux下定时切割Mongodb数据库日志并删除指定天数前的日志记录
- Linux下定时切割Mongodb数据库日志并删除指定天数前的日志记录
- Linux下定时切割Mongodb数据库日志并删除指定天数前的日志记录
- Linux下定时切割Mongodb数据库日志并删除指定天数前的日志记录(转)
- nginx访问日志并删除指定天数前的日志记录配置方法
- Linux下 切割tomcat日志 定期删除
- linux删除指定日期前的日志文件中的记录
- 利用 cronolog 对 tomcat 7 进行日志切割
- 使用cronolog进行tomcat日志切割
- Linux自动删除tomcat日志文件
- linux下删除指定天数以前的文件
- Linux下如何遍历指定目录下的所有文件并删除指定天数之前创建的文件
- linux下如何切割tomcat日志
- Linux 日志切割工具cronolog详解