CentOS JSP项目如何备份与恢复
导读: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”
- #!/bin/bash
五 安全与最佳实践
- 最小权限与凭据保护:备份脚本与数据库账号仅授予必要权限;避免在代码中硬编码数据库密码,优先使用环境变量或配置中心。
- 加密与传输:敏感备份启用 AES-256 加密(如 restic);公网/跨机房传输使用 rsync over SSH 或对象存储的加密通道。
- 多地多副本与离线副本:至少保留 2–3 份副本(本地+远程/云),关键时点做离线或异地副本。
- 定期恢复演练:每月做一次恢复演练与校验(如校验文件大小/条目数/随机表数据),验证备份可用性与恢复时效。
- 监控与告警:记录备份日志,监控备份结果与磁盘空间,异常及时告警。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS JSP项目如何备份与恢复
本文地址: https://pptw.com/jishu/747825.html
