tomcat_无痕分割catalina.out日志文件
[test@test bin]$ cd /home/test/apache-tomcat-8.5.100/bin
[test@test bin]$ more start_tomcat.sh
#!/bin/bash
start(){
echo "Starting tomcat"
bash startup.sh
nohup ./tomcat_log.sh > /dev/null 2>&1 &
echo $?
}
stop(){
echo "Stopping tomcat..."
pid_num=$(ps -ef|grep $(whoami)|grep apache-tomcat-8.5.100|grep -v grep|awk '{print $2}')
log_num=$(ps -ef|grep $(whoami)|grep tomcat_log.sh|grep -v grep|awk '{print $2}')
if [[ $pid_num =~ ^[0-9]+$ ]];then
kill -9 $pid_num
fi
if [[ $log_num =~ ^[0-9]+$ ]];then
kill -9 $log_num
fi
echo $?
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esac
exit 0
[test@test bin]$ more tomcat_log.sh
#!/bin/bash
tomcat_log_split(){
# 定义变量
CATALINA_OUT="../logs/catalina.out"
BACKUP_DIR="../logs"
DATE=$(date +%Y-%m-%d_%H_%S)
# 检查备份目录是否存在,不存在则创建
if [ ! -d "$BACKUP_DIR" ]; then
mkdir -p "$BACKUP_DIR"
fi
# 备份并压缩当前的 catalina.out 文件
tar zcf "${BACKUP_DIR}/catalina.out_${DATE}.tar.gz" "$CATALINA_OUT"
# 创建一个新的空的 catalina.out 文件
truncate -s0 "$CATALINA_OUT"
}
HourArray=(17)
while true; do
RunTime=$(date +%H)
if [[ " ${HourArray[*]} " =~ " ${RunTime} " ]]; then
tomcat_log_split
# 计算距离下一个整点的时间并睡眠相应秒数
sleep $((3600 - $(date +%M%S)))
fi
# 计算距离下一个整点的时间并睡眠相应秒数
sleep $((3600 - $(date +%M%S)))
done
[test@testbin]$ ./start_tomcat.sh start
Starting tomcat
Using CATALINA_BASE: /home/portal/apache-tomcat-8.5.100
Using CATALINA_HOME: /home/portal/apache-tomcat-8.5.100
Using CATALINA_TMPDIR: /home/portal/apache-tomcat-8.5.100/temp
Using JRE_HOME: /home/portal/jdk1.8.0_131
Using CLASSPATH: /home/portal/apache-tomcat-8.5.100/bin/bootstrap.jar:/home/portal/apache-tomcat-8.5.100/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
0
[test@test bin]$ ps -ef|grep tomcat_log
portal 24227 1 0 17:22 pts/0 00:00:00 /bin/bash ./tomcat_log.sh
portal 24270 23310 0 17:22 pts/0 00:00:00 grep --color=auto tomcat_log
[test@test logs]$ ls -htrl
-rw-rw-r-- 1 test test 120 Jan 22 14:49 catalina.out_2025-01-22_14_39.tar.gz
-rw-r----- 1 test test 0 Jan 22 14:49 manager.2025-01-22.log
-rw-r----- 1 test test 0 Jan 22 14:49 host-manager.2025-01-22.log
-rw-r----- 1 test test 0 Jan 22 14:49 localhost_access_log.2025-01-22.txt
-rw-rw-r-- 1 test test 1.2K Jan 22 16:49 catalina.out_2025-01-22_16_39.tar.gz
-rw-rw-r-- 1 test test 127 Jan 22 17:13 catalina.out_2025-01-22_17_10.tar.gz
-rw-r----- 1 test test 918 Jan 22 17:14 localhost.2025-01-22.log
-rw-r----- 1 test test 12K Jan 22 17:14 catalina.2025-01-22.log
-rw-rw-r-- 1 test test 1.2K Jan 22 17:14 catalina.out_2025-01-22_17_48.tar.gz
-rw-rw-r-- 1 test test 127 Jan 22 17:15 catalina.out_2025-01-22_17_17.tar.gz
-rw-r----- 1 test test 0 Jan 22 17:15 catalina.out
评论区