Linux环境下Tomcat日志备份与恢复指南
Tomcat日志文件的默认路径取决于安装方式,常见位置包括:
/var/log/tomcat/(如通过apt或yum安装);/opt/tomcat/logs/(如手动下载解压安装)。sudo find / -type d -name "logs" 2>/dev/null | grep tomcat
sudo systemctl stop tomcat
tar命令将日志目录打包为.tar.gz格式(节省空间且便于传输):sudo tar czvf tomcat_logs_backup_$(date +%Y%m%d).tar.gz /path/to/tomcat/logs/
示例:若日志路径为/opt/tomcat/logs,命令为:sudo tar czvf tomcat_logs_backup_$(date +%Y%m%d).tar.gz /opt/tomcat/logs/
mv tomcat_logs_backup_$(date +%Y%m%d).tar.gz /mnt/usb/backup/
/home/user/backup_tomcat_logs.sh):#!/bin/bash
LOG_PATH="/opt/tomcat/logs" # 日志目录
BACKUP_DIR="/home/user/backups" # 备份存储目录
DATE=$(date +%Y-%m-%d) # 当前日期
# 备份日志(保留最近30天)
tar czvf "$BACKUP_DIR/tomcat_logs_$DATE.tar.gz" "$LOG_PATH"
find "$BACKUP_DIR" -name "tomcat_logs_*.tar.gz" -mtime +30 -exec rm -f {} \;
chmod +x /home/user/backup_tomcat_logs.sh
crontab -e,添加以下内容(每天凌晨2点执行):0 2 * * * /home/user/backup_tomcat_logs.sh
Logrotate是Linux自带的日志轮转工具,可自动完成日志备份、压缩和清理:
/etc/logrotate.d/tomcat):/opt/tomcat/logs/catalina.out {
daily # 每天轮转
rotate 7 # 保留7份
compress # 压缩旧日志
missingok # 文件不存在时不报错
notifempty # 空文件不轮转
copytruncate # 复制后清空原文件(避免重启Tomcat)
}
/opt/tomcat/logs/*.log {
daily
rotate 30
compress
missingok
notifempty
}
logrotate -d /etc/logrotate.conf # 测试模式(无实际操作)
logrotate -f /etc/logrotate.conf # 强制立即执行
sudo systemctl stop tomcat
/tmp):cd /mnt/usb/backup/
tar xzvf tomcat_logs_backup_20250910.tar.gz -C /tmp/
sudo cp -R /tmp/tomcat/logs/* /opt/tomcat/logs/
sudo systemctl start tomcat
gpg)或存储在加密存储介质中;df -h命令监控备份目录所在磁盘的剩余空间,避免磁盘满导致服务中断。