CentOS上Tomcat备份与恢复方法
导读:CentOS 上 Tomcat 备份与恢复 一 备份范围与准备 建议备份范围: 应用与数据:$CATALINA_HOME/webapps(WAR 包与解压目录)、$CATALINA_BASE/work、$CATALINA_BASE/te...
CentOS 上 Tomcat 备份与恢复
一 备份范围与准备
- 建议备份范围:
- 应用与数据:$CATALINA_HOME/webapps(WAR 包与解压目录)、$CATALINA_BASE/work、$CATALINA_BASE/temp。
- 配置:$CATALINA_BASE/conf(如 server.xml、web.xml、context.xml 等)。
- 日志:$CATALINA_BASE/logs(便于排错与审计)。
- 可选:外部持久化目录(如应用写入的 /data、/var/lib/your-app 等)。
- 服务管理:使用 systemd 管理的 Tomcat,建议通过服务停止/启动,避免直接 kill。
- 权限与路径:以 tomcat 用户运行更安全;确认 JAVA_HOME、CATALINA_HOME、CATALINA_BASE 等环境变量已正确设置。
二 手动备份与恢复步骤
- 备份(建议先停服务,保证一致性)
- 停止服务 sudo systemctl stop tomcat
- 创建备份目录 sudo mkdir -p /backup/tomcat/$(date +%F)
- 打包关键目录(按你的实际路径调整)
sudo tar -czvf /backup/tomcat/$(date +%F)/tomcat_full_$(date +%H%M%S).tar.gz
-C /opt/tomcat webapps conf logs work temp - 可选:仅备份配置与 WAR
sudo tar -czvf /backup/tomcat/$(date +%F)/tomcat_conf_war_$(date +%H%M%S).tar.gz
-C /opt/tomcat conf webapps - 启动服务 sudo systemctl start tomcat
- 校验 ls -lh /backup/tomcat/$(date +%F)/
- 恢复(按与备份相反的顺序)
- 停止服务 sudo systemctl stop tomcat
- 备份当前目录(可选,便于回滚)
sudo tar -czvf /backup/tomcat/pre_restore_$(date +%F_%H%M%S).tar.gz
-C /opt/tomcat webapps conf logs work temp - 清空或重命名现有目录(二选一)
- 覆盖式:sudo rm -rf /opt/tomcat/webapps /opt/tomcat/conf /opt/tomcat/logs /opt/tomcat/work /opt/tomcat/temp
- 更安全:先 mv 到备份名再解压
- 解压恢复 sudo tar -xzvf /backup/tomcat/2025-04-05/tomcat_full_102300.tar.gz -C /opt/tomcat
- 修正权限(如以 tomcat 运行) sudo chown -R tomcat:tomcat /opt/tomcat
- 启动并校验 sudo systemctl start tomcat sudo systemctl status tomcat tail -n 200 /opt/tomcat/logs/catalina.out
三 自动化备份与远程同步
- 本地定时备份脚本(示例)
- 路径假设:/opt/tomcat,/backup/tomcat
- 脚本:/opt/backup/tomcat_backup.sh
#!/bin/bash
set -e
export BACKUP_BASE=“/backup/tomcat”
export CATALINA_BASE=“/opt/tomcat”
export DATE=$(date +%F_%H%M%S)
mkdir -p “$BACKUP_BASE/$DATE”
一致性:停服务;如业务不允许停机,可改为不加 --exclude 的 rsync 热备
systemctl stop tomcat || true tar -czvf “$BACKUP_BASE/$DATE/tomcat_full_$DATE.tar.gz”
-C “$CATALINA_BASE” webapps conf logs work temp systemctl start tomcat || true保留最近 7 天
find “$BACKUP_BASE” -maxdepth 1 -type d -mtime +7 -exec rm -rf { } ;可选:同步到远程
rsync -avz --delete “$BACKUP_BASE/” user@backup-server:/backup/tomcat/
- 赋予执行权限并配置定时任务
- chmod +x /opt/backup/tomcat_backup.sh
- 编辑定时任务(每天 01:00 执行) sudo crontab -e 0 1 * * * /opt/backup/tomcat_backup.sh > > /var/log/tomcat_backup.log 2> & 1
- 远程备份与恢复(rsync)
- 备份:rsync -avz /opt/tomcat/ user@backup-server:/backup/tomcat/$(hostname)/
- 恢复:rsync -avz user@backup-server:/backup/tomcat/$(hostname)/ /opt/tomcat/
四 常见场景与注意事项
- 仅回滚应用版本:只替换 webapps(WAR 或解压目录),保留 conf 与 logs;重启 Tomcat 后观察 catalina.out 与业务日志。
- 配置变更回滚:优先备份 conf 目录;恢复时先停服务,覆盖 conf 后再启动。
- 一致性建议:有写入操作时尽量停服务或使用支持一致性快照的文件系统/存储;对数据库有写入的应用,需同时备份数据库(如 mysqldump)。
- 权限与属主:恢复后确保 tomcat:tomcat 拥有相应目录权限,避免因权限导致 ClassNotFound 或无法写入。
- 校验与演练:定期校验备份可用性(解压测试、关键文件列表比对),并进行恢复演练,确保真实可用。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS上Tomcat备份与恢复方法
本文地址: https://pptw.com/jishu/776770.html
