Debian Tomcat日志备份与恢复策略
一 策略总览
二 日常本地轮转与清理 logrotate
/var/log/tomcat/*.log {
daily
rotate 7
compress
missingok
notifempty
create 640 tomcat adm
sharedscripts
postrotate
# 如使用 systemd,优先用 systemctl;避免 kill -9
systemctl try-reload-or-restart tomcat || true
endscript
}
logrotate -d /etc/logrotate.d/tomcat(干跑),logrotate -f /etc/logrotate.d/tomcat(强制运行一次)。三 定期归档与异地备份
#!/usr/bin/env bash
set -Eeuo pipefail
LOG_PATH="/opt/tomcat/logs"
BACKUP_DIR="/backup/tomcat"
DATE=$(date +%F)
HOST=$(hostname -s)
mkdir -p "$BACKUP_DIR"
# 打包当日日志
tar czf "$BACKUP_DIR/tomcat_logs_${HOST}_${DATE}.tar.gz" -C "$LOG_PATH" .
# 可选:校验
sha256sum "$BACKUP_DIR/tomcat_logs_${HOST}_${DATE}.tar.gz" \
> "$BACKUP_DIR/tomcat_logs_${HOST}_${DATE}.sha256"
# 保留策略:删除30天前的归档
find "$BACKUP_DIR" -name "tomcat_logs_*.tar.gz" -mtime +30 -delete
find "$BACKUP_DIR" -name "tomcat_logs_*.sha256" -mtime +30 -delete
# 可选:复制到远端(示例 rsync)
# rsync -avz --delete "$BACKUP_DIR/" user@backup-host:/backups/tomcat/
# 每天 02:00 归档
0 2 * * * /usr/local/bin/backup_tomcat_logs.sh
四 恢复流程与注意事项
sudo systemctl stop tomcat;sudo tar xzf /backup/tomcat/tomcat_logs_HOST_YYYY-MM-DD.tar.gz -C /opt/tomcat/logs;sha256sum -c /backup/tomcat/tomcat_logs_HOST_YYYY-MM-DD.sha256;sudo systemctl start tomcat;journalctl -u tomcat与应用日志是否正常。五 容量与治理建议
conf/logging.properties中将不必要的包或类日志级别调为WARNING或更高,降低磁盘占用与I/O压力。