手动备份是最基础的备份方式,适用于临时或一次性备份需求。核心步骤如下:
sudo systemctl stop tomcat # systemd系统(推荐)
sudo service tomcat stop # 旧版init系统
tar命令打包整个Tomcat安装目录(如/opt/tomcat、/usr/local/tomcat或/var/lib/tomcat),保留目录结构:sudo tar -czvf /backup/tomcat_full_$(date +%Y%m%d).tar.gz /opt/tomcat
conf(配置文件)、webapps(Web应用)、logs(日志)目录,减少备份体积:sudo tar -czvf /backup/tomcat_conf_$(date +%Y%m%d).tar.gz /opt/tomcat/conf
sudo tar -czvf /backup/tomcat_webapps_$(date +%Y%m%d).tar.gz /opt/tomcat/webapps
sudo tar -czvf /backup/tomcat_logs_$(date +%Y%m%d).tar.gz /opt/tomcat/logs
mysqldump):mysqldump -u root -p my_database > /backup/my_database_$(date +%Y%m%d).sql
通过cron定时任务实现定期自动备份,减少人工干预。步骤如下:
/usr/local/bin/tomcat_backup.sh),包含备份逻辑(停止服务、打包目录、清理旧备份):#!/bin/bash
BACKUP_DIR="/var/backups/tomcat"
TOMCAT_HOME="/opt/tomcat"
DATE=$(date +"%Y%m%d_%H%M%S")
BACKUP_FILE="$BACKUP_DIR/tomcat_backup_$DATE.tar.gz"
# 创建备份目录
mkdir -p "$BACKUP_DIR"
# 停止Tomcat
sudo systemctl stop tomcat
# 备份关键目录
tar -czvf "$BACKUP_FILE" "$TOMCAT_HOME/conf" "$TOMCAT_HOME/webapps" "$TOMCAT_HOME/logs"
# 启动Tomcat
sudo systemctl start tomcat
# 删除7天前的旧备份
find "$BACKUP_DIR" -type f -name "tomcat_backup_*.tar.gz" -mtime +7 -exec rm {} \;
echo "[$(date)] Tomcat backup completed: $BACKUP_FILE" >> "$BACKUP_DIR/backup.log"
sudo chmod +x /usr/local/bin/tomcat_backup.sh
crontab -e),添加定时执行规则(如每天凌晨2点执行):0 2 * * * /usr/local/bin/tomcat_backup.sh >> /var/log/tomcat_cron.log 2>&1
此配置会每天凌晨2点运行脚本,并将输出日志保存到/var/log/tomcat_cron.log。Tomcat的日志文件(如catalina.out、localhost_access_log)会持续增长,需通过logrotate定期轮转、压缩和删除旧日志,避免占用过多磁盘空间。步骤如下:
sudo apt update && sudo apt install logrotate
/etc/logrotate.d/下新建tomcat文件,添加以下内容(根据实际日志路径调整):/var/log/tomcat/*.log {
daily # 每天轮转
missingok # 忽略缺失文件
rotate 7 # 保留7个旧日志
compress # 压缩旧日志(gzip)
notifempty # 空日志不轮转
create 640 tomcat adm # 新日志权限
sharedscripts # 所有日志处理完后执行脚本
postrotate
/usr/bin/systemctl reload tomcat >/dev/null 2>&1 || true
endscript
}
sudo logrotate -f /etc/logrotate.d/tomcat
logrotate会自动处理/var/log/tomcat/下的日志文件,无需手动干预。/backup、/var/backups/tomcat)有足够写入权限,建议使用tomcat用户或root用户操作。以上方法覆盖了Debian下Tomcat备份的主要场景,可根据实际需求选择手动/自动方式,并结合日志管理提升数据安全性。