如何用Shell脚本实现tomcat日志定时切割

2023-04-14 10:45:00 定时 切割 如何用

如何用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文件,最后将标准输出重定向到一个新的日志文件中。

这样,每天凌晨就会自动将前一天的日志文件切割并重命名,方便日后查看和分析。

相关文章