JSP应用在Debian上的备份策略
一 备份范围与频率
二 工具与方案对比
| 工具/方式 | 适用场景 | 关键优点 | 关键注意点 |
|---|---|---|---|
| tar 全量/时间增量 | 单服务器、快速打包 | 简单可靠、压缩率高 | 需配合脚本做周期与保留;时间增量依赖文件系统时间 |
| rsync 增量同步 | 本地到本地/远程 | 增量高效、可校验与删除同步 | 建议加**–delete**谨慎使用;远程需SSH密钥 |
| Duplicity(含Restic/Borg) | 加密、增量、远程/云 | 支持加密与去重、带宽与存储友好 | 首次全量较慢;妥善管理GPG密钥与仓库 |
| BackupNinja | 系统级统一编排 | 向导化配置、适配多种后端 | 偏系统层面,需与业务备份脚本配合 |
| Git | 源码版本控制 | 版本回溯、审计友好 | 不备份二进制/依赖/配置;生产环境仍需系统级备份 |
| 上述工具在Debian上均可使用,适合不同规模与合规要求的JSP部署。 |
三 推荐方案与示例命令
#!/usr/bin/env bash
set -e
DATE=$(date +%F)
APP_SRC="/var/lib/tomcat9/webapps/ROOT"
CONF_SRC="/etc/tomcat9"
OUT_DIR="/backup/jsp"
mkdir -p "$OUT_DIR"
tar -czf "$OUT_DIR/jsp_app_${DATE}.tar.gz" -C "$APP_SRC" . "$CONF_SRC"
rsync -avz --delete -e ssh /backup/jsp/ user@backup-host:/backup/jsp/
find /backup/jsp -name "jsp_app_*.tar.gz" -mtime +7 -delete
0 2 * * * /usr/local/bin/backup-jsp.sh >> /var/log/backup-jsp.log 2>&1
# 首次全量(示例:S3兼容)
duplicity --full-if-older-than 7D \
--s3-use-new-style \
/var/lib/tomcat9/webapps/ROOT \
s3://bucket-name/jsp-app/
# 日常增量
duplicity /var/lib/tomcat9/webapps/ROOT \
s3://bucket-name/jsp-app/
# 还原到临时目录
duplicity restore s3://bucket-name/jsp-app/ /tmp/jsp-restore
提示:将GPG密钥与云凭证安全存放;定期做恢复演练验证可用性与完整性。四 数据库备份与恢复要点
mysqldump -u USER -p --single-transaction --routines --triggers --hex-blob DB_NAME \
> /backup/db/db_$(date +%F).sql
mysql -u USER -p DB_NAME < /backup/db/db_YYYY-MM-DD.sql
pg_dump -U USER -h localhost -F c DB_NAME > /backup/db/db_$(date +%F).dump
pg_restore -U USER -d DB_NAME /backup/db/db_YYYY-MM-DD.dump
五 恢复流程与运维要点
tar -xzvf jsp_app_YYYY-MM-DD.tar.gz -C /var/lib/tomcat9/webapps/ROOT