centos

CentOS Tomcat日志备份方法有哪些

小樊
42
2025-10-17 17:47:57
栏目: 智能运维

CentOS Tomcat日志备份的常见方法

1. 手动打包备份(基础方法)

通过tar命令直接打包Tomcat日志目录(默认路径为/var/log/tomcat$CATALINA_HOME/logs),生成压缩文件并存储到安全位置。操作步骤如下:

2. 利用logrotate实现自动轮转备份

logrotate是Linux系统自带的日志管理工具,可自动切割、压缩、删除旧日志,避免日志文件过大占用磁盘空间。配置步骤如下:

3. 自定义脚本+定时任务(灵活扩展)

通过编写Shell脚本实现更灵活的日志备份(如同时备份多个日志文件、上传到远程存储),并结合cron定时执行。示例脚本(/usr/local/bin/tomcat_log_backup.sh):

#!/bin/bash
# 定义变量
LOG_DIR="/var/log/tomcat"
BACKUP_DIR="/backup/tomcat_logs"
DATE=$(date +%Y%m%d_%H%M%S)
# 创建备份目录(若不存在)
mkdir -p $BACKUP_DIR
# 停止Tomcat(可选,根据需求调整)
sudo systemctl stop tomcat
# 备份所有日志文件(包括catalina.out、access_log等)
tar -czvf $BACKUP_DIR/tomcat_logs_$DATE.tar.gz $LOG_DIR/*.log $LOG_DIR/catalina.out
# 删除超过30天的旧备份(可选)
find $BACKUP_DIR -name "tomcat_logs_*.tar.gz" -mtime +30 -exec rm -f {} \;
# 启动Tomcat(可选)
sudo systemctl start tomcat

4. 日志分割脚本(针对catalina.out优化)

Tomcat的catalina.out日志文件会持续增长(默认无轮转),需通过脚本定期分割。示例脚本(/usr/local/bin/split_catalina_out.sh):

#!/bin/bash
LOG_DIR="/var/log/tomcat"
BACKUP_DIR="/backup/tomcat_logs"
DATE=$(date +%Y-%m-%d)
# 备份并清空catalina.out
cp $LOG_DIR/catalina.out $BACKUP_DIR/catalina.$DATE.bak
> $LOG_DIR/catalina.out  # 清空原文件
# 可选:将备份文件压缩
tar -czvf $BACKUP_DIR/catalina.$DATE.tar.gz $BACKUP_DIR/catalina.$DATE.bak
rm -f $BACKUP_DIR/catalina.$DATE.bak  # 删除未压缩的备份(节省空间)

0
看了该问题的人还看了