首页主机资讯CentOS JSP项目如何备份与恢复

CentOS JSP项目如何备份与恢复

时间2025-11-14 11:04:03发布访客分类主机资讯浏览561
导读:CentOS 上 JSP 项目的备份与恢复 一 备份范围与准备 明确备份范围: 应用代码与静态资源:如 /var/lib/tomcat/webapps/(或自定义 CATALINA_HOME/webapps)、自定义的配置文件目录。 数...

CentOS 上 JSP 项目的备份与恢复

一 备份范围与准备

  • 明确备份范围:
    • 应用代码与静态资源:如 /var/lib/tomcat/webapps/(或自定义 CATALINA_HOME/webapps)、自定义的配置文件目录。
    • 数据与配置:如 /etc/tomcat/(或 $CATALINA_HOME/conf)、应用配置、环境变量脚本。
    • 数据库:如 MySQL/MariaDB 的业务库(建议用逻辑备份 mysqldump,必要时用物理备份)。
    • 日志:如 /var/log/tomcat/、应用日志目录(建议用 logrotate 管理)。
  • 准备备份目标与账号:
    • 本地目录(如 /backup)或远程存储(如 NFS/对象存储),确保磁盘空间与权限。
    • 数据库备份账号需具备相应权限(SELECT、SHOW VIEW、LOCK TABLES 等)。
  • 建议做法:
    • 代码纳入 Git 管理;生产仅备份工作区或打包产物(WAR)与配置,避免重复备份版本库。
    • 统一备份用户与目录权限,开启备份日志与校验。

二 备份方案与命令示例

  • 文件与应用备份
    • 打包归档(适合全量快照):
      • 示例:tar -czvf /backup/jsp_app_$(date +%F).tar.gz -C /var/lib/tomcat/webapps .
    • 增量同步(适合日常):
      • 首次:rsync -avz /var/lib/tomcat/webapps/ /backup/webapps/
      • 后续:rsync -avz --delete /var/lib/tomcat/webapps/ /backup/webapps/
    • 远程备份:
      • rsync -avz /backup/ user@remote:/backup/ 或 scp /backup/file.tar.gz user@remote:/backup/
  • 数据库备份(以 MySQL 为例)
    • 单库:mysqldump -u USER -p DB_NAME > /backup/db_$(date +%F).sql
    • 所有库:mysqldump -u USER -p --all-databases > /backup/all_$(date +%F).sql
    • 压缩:gzip /backup/db_$(date +%F).sql
    • 物理备份(停机或维护窗口):停库后拷贝 /var/lib/mysql,再启动数据库。
  • 日志轮转(避免日志无限增长)
    • /etc/logrotate.d/tomcat 中配置按日轮转、保留 7 天等策略。
  • 自动化与保留策略
    • 编写备份脚本(含文件/数据库/清理逻辑),用 crontab 定时执行,如每天 02:00 运行;按保留天数删除旧备份。

三 恢复步骤与要点

  • 应用代码与静态资源
    • 归档恢复:tar -xzvf /backup/jsp_app_2025-11-14.tar.gz -C /var/lib/tomcat/webapps
    • 同步恢复:rsync -avz --delete /backup/webapps/ /var/lib/tomcat/webapps/
    • 如使用 WAR 部署,也可将备份的 .war 复制到 webapps 并重启 Tomcat 自动解压。
  • 数据库恢复
    • 逻辑恢复:mysql -u USER -p DB_NAME < /backup/db_2025-11-14.sql
    • 压缩包:gunzip < /backup/db_2025-11-14.sql.gz | mysql -u USER -p DB_NAME
    • 物理恢复:停库,将备份的 /var/lib/mysql 覆盖回数据目录,再启动数据库。
  • 配置与日志
    • 恢复 /etc/tomcat/$CATALINA_HOME/conf 下的配置文件;必要时调整 server.xml 端口与连接器。
    • 恢复日志目录或让 logrotate 重新创建。
  • 生效与验证
    • 重启 Tomcat:systemctl restart tomcat
    • 访问应用首页与关键业务接口,核对版本、数据与配置是否一致。

四 自动化脚本与定时任务

  • 示例脚本 backup_jsp.sh(可按需裁剪)
    • 说明:备份 Tomcat webapps、Tomcat 配置、指定数据库,保留 7 天。
    • 使用:chmod +x backup_jsp.sh;crontab -e 添加 0 2 * * * /path/backup_jsp.sh
    • 注意:将 DB_USER/DB_PASS/DB_NAME、CATALINA_HOME、BACKUP_DIR 替换为实际值;生产环境建议用配置文件或环境变量管理敏感信息。
  • 脚本内容
    • #!/bin/bash
      set -e
      DATE=$(date +%F_%H%M%S)
      BACKUP_DIR=“/backup”
      CATALINA_HOME=“/usr/share/tomcat”
      DB_USER=“dbuser”
      DB_PASS=“dbpass”
      DB_NAME=“mydb”
      mkdir -p “$BACKUP_DIR”

      1) 应用与配置

      tar -czvf “$BACKUP_DIR/jsp_app_$DATE.tar.gz” -C “$CATALINA_HOME/webapps” .
      tar -czvf “$BACKUP_DIR/tomcat_conf_$DATE.tar.gz” -C “$CATALINA_HOME/conf” .

      2) 数据库

      mysqldump -u"$DB_USER" -p"$DB_PASS" “$DB_NAME” | gzip > “$BACKUP_DIR/db_${ DB_NAME} _$DATE.sql.gz”

      3) 清理 7 天前

      find “$BACKUP_DIR” -type f -mtime +7 -delete
      echo “Backup finished at $DATE” > > “$BACKUP_DIR/backup.log”

五 安全与最佳实践

  • 最小权限与凭据保护:备份脚本与数据库账号仅授予必要权限;避免在代码中硬编码数据库密码,优先使用环境变量或配置中心。
  • 加密与传输:敏感备份启用 AES-256 加密(如 restic);公网/跨机房传输使用 rsync over SSH 或对象存储的加密通道。
  • 多地多副本与离线副本:至少保留 2–3 份副本(本地+远程/云),关键时点做离线或异地副本。
  • 定期恢复演练:每月做一次恢复演练与校验(如校验文件大小/条目数/随机表数据),验证备份可用性与恢复时效。
  • 监控与告警:记录备份日志,监控备份结果与磁盘空间,异常及时告警。

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


若转载请注明出处: CentOS JSP项目如何备份与恢复
本文地址: https://pptw.com/jishu/747825.html
如何进行centos分卷 CentOS中JSP如何优化数据库连接

游客 回复需填写必要信息