首页主机资讯CentOS上Tomcat备份与恢复方法

CentOS上Tomcat备份与恢复方法

时间2025-12-19 23:06:05发布访客分类主机资讯浏览620
导读: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 等环境变量已正确设置。

二 手动备份与恢复步骤

  • 备份(建议先停服务,保证一致性)
    1. 停止服务 sudo systemctl stop tomcat
    2. 创建备份目录 sudo mkdir -p /backup/tomcat/$(date +%F)
    3. 打包关键目录(按你的实际路径调整) sudo tar -czvf /backup/tomcat/$(date +%F)/tomcat_full_$(date +%H%M%S).tar.gz
      -C /opt/tomcat webapps conf logs work temp
    4. 可选:仅备份配置与 WAR sudo tar -czvf /backup/tomcat/$(date +%F)/tomcat_conf_war_$(date +%H%M%S).tar.gz
      -C /opt/tomcat conf webapps
    5. 启动服务 sudo systemctl start tomcat
    6. 校验 ls -lh /backup/tomcat/$(date +%F)/
  • 恢复(按与备份相反的顺序)
    1. 停止服务 sudo systemctl stop tomcat
    2. 备份当前目录(可选,便于回滚) sudo tar -czvf /backup/tomcat/pre_restore_$(date +%F_%H%M%S).tar.gz
      -C /opt/tomcat webapps conf logs work temp
    3. 清空或重命名现有目录(二选一)
      • 覆盖式:sudo rm -rf /opt/tomcat/webapps /opt/tomcat/conf /opt/tomcat/logs /opt/tomcat/work /opt/tomcat/temp
      • 更安全:先 mv 到备份名再解压
    4. 解压恢复 sudo tar -xzvf /backup/tomcat/2025-04-05/tomcat_full_102300.tar.gz -C /opt/tomcat
    5. 修正权限(如以 tomcat 运行) sudo chown -R tomcat:tomcat /opt/tomcat
    6. 启动并校验 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 或解压目录),保留 conflogs;重启 Tomcat 后观察 catalina.out 与业务日志。
  • 配置变更回滚:优先备份 conf 目录;恢复时先停服务,覆盖 conf 后再启动。
  • 一致性建议:有写入操作时尽量停服务或使用支持一致性快照的文件系统/存储;对数据库有写入的应用,需同时备份数据库(如 mysqldump)。
  • 权限与属主:恢复后确保 tomcat:tomcat 拥有相应目录权限,避免因权限导致 ClassNotFound 或无法写入。
  • 校验与演练:定期校验备份可用性(解压测试、关键文件列表比对),并进行恢复演练,确保真实可用。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS上Tomcat备份与恢复方法
本文地址: https://pptw.com/jishu/776770.html
如何解决CentOS中Tomcat端口冲突 怎样限制CentOS SFTP用户权限

游客 回复需填写必要信息