如何用Shell脚本实现tomcat日志定时切割
如何用Shell脚本实现tomcat日志定时切割
在Linux上安装好Tomcat后,通常会将日志文件保存在/var/log/tomcat目录中。如果没有这个目录,可以创建一个。Tomcat的日志文件包括catalina.out和localhost_access_log.yyyy-mm-dd.txt两个文件。前者是Tomcat的标准输出日志,后者是Tomcat的访问日志。
为了方便管理,我们可以使用Shell脚本实现对日志文件的定时切割。切割的方法是每天凌晨将前一天的日志文件重命名为.old文件,然后将标准输出重定向到一个新的日志文件中。
下面是一个简单的Shell脚本实现这个功能:
#!/bin/bash
# This script is used to rotate Tomcat log files.
#
# Author: neo
#
# Date: 2015-12-31
#
# Path to Tomcat log files
LOG_PATH=/var/log/tomcat
# Tomcat log files
LOG_FILES=(catalina.out localhost_access_log.yyyy-mm-dd.txt)
# Rotate Tomcat log files
for LOG_FILE in ${LOG_FILES[@]}
do
# Get the date of the log file
LOG_DATE=`date -d "1 day ago" +%Y-%m-%d`
# Rename the log file with a .old suffix
mv ${LOG_PATH}/${LOG_FILE} ${LOG_PATH}/${LOG_FILE}.${LOG_DATE}.old
# Redirect output to a new log file
exec >> ${LOG_PATH}/${LOG_FILE}
done
上面的脚本首先定义了一个数组变量LOG_FILES,用于保存要切割的日志文件名。然后使用for循环遍历数组变量,对每个日志文件进行切割操作。
首先获取前一天的日期,然后将日志文件重命名为.old文件,最后将标准输出重定向到一个新的日志文件中。
这样,每天凌晨就会自动将前一天的日志文件切割并重命名,方便日后查看和分析。
相关文章