一、备份策略
sudo systemctl stop tomcat(若使用init.d脚本,可替换为sudo /etc/init.d/tomcat stop)。/opt/backup/tomcat_backup、远程服务器或云存储),避免备份文件占用系统盘空间。$CATALINA_HOME/conf(如server.xml、web.xml),包含端口、虚拟主机、连接器等关键配置,直接影响服务运行。$CATALINA_HOME/webapps存放所有部署的WAR包及解压后的应用文件(如JSP、Servlet),是业务功能的核心载体。$CATALINA_HOME/logs记录Tomcat运行日志(如catalina.out)、应用访问日志(如access_log),用于故障排查和审计。$CATALINA_HOME/temp(临时文件)、$CATALINA_HOME/work(JSP编译后文件),虽非核心数据,但恢复时可避免重新生成。mysqldump -u username -p database_name > backup.sql),确保数据一致性。tar命令将多个目录合并为一个压缩文件,节省空间且便于传输。常用命令:sudo tar -czvf /opt/backup/tomcat_backup_$(date +%Y%m%d).tar.gz --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/run /opt/tomcat/webapps /opt/tomcat/conf /opt/tomcat/logs /opt/tomcat/temp /opt/tomcat/work-c创建归档、-zgzip压缩、-v显示进度、-f指定文件名;--exclude排除无需备份的系统目录)。sudo scp /opt/backup/tomcat_backup_$(date +%Y%m%d).tar.gz user@remote_host:/backups/user、remote_host为实际用户名和服务器地址)。#!/bin/bash
BACKUP_DIR="/opt/backup/tomcat_backup"
DATE=$(date +"%Y%m%d")
TOMCAT_HOME="/opt/tomcat"
BACKUP_FILE="$BACKUP_DIR/tomcat_backup_$DATE.tar.gz"
# 停止Tomcat
sudo systemctl stop tomcat
# 创建备份目录
mkdir -p $BACKUP_DIR
# 打包备份
sudo tar -czvf $BACKUP_FILE --exclude=$BACKUP_DIR --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/run $TOMCAT_HOME/webapps $TOMCAT_HOME/conf $TOMCAT_HOME/logs $TOMCAT_HOME/temp $TOMCAT_HOME/work
# 启动Tomcat
sudo systemctl start tomcat
echo "Backup completed: $BACKUP_FILE"
赋予执行权限:chmod +x backup_tomcat.sh。crontab -e设置定期执行脚本,例如每天凌晨2点备份:0 2 * * * /path/to/backup_tomcat.sh。find /opt/backup/tomcat_backup -name "tomcat_backup_*.tar.gz" -mtime +30 -delete),避免备份文件过多占用空间。gpg加密备份文件,命令:gpg -c tomcat_backup.tar.gz,生成tomcat_backup.tar.gz.gpg(需妥善保管私钥)。chmod 700 /opt/backup/tomcat_backup),防止未授权访问。二、恢复策略
sudo systemctl stop tomcat。sudo tar -xzvf /opt/backup/tomcat_backup_20250910.tar.gz -C /opt/tomcat/mysql命令恢复数据:mysql -u username -p database_name < backup.sqlsudo systemctl start tomcat。sudo systemctl status tomcat,确认服务处于active (running)状态。http://localhost:8080(默认端口)或应用URL,验证Web应用是否正常加载。$CATALINA_HOME/logs/catalina.out,确认无启动错误(如配置文件缺失、端口冲突)。