怎样在centos上备份tomcat数据
导读:CentOS 上备份 Tomcat 的可执行方案 一 备份范围与目录定位 建议优先备份以下关键目录与文件,覆盖配置、应用、数据与运行缓存: 配置:/etc/tomcat/(RPM 安装常见)或 $CATALINA_HOME/conf(源...
CentOS 上备份 Tomcat 的可执行方案
一 备份范围与目录定位
- 建议优先备份以下关键目录与文件,覆盖配置、应用、数据与运行缓存:
- 配置:/etc/tomcat/(RPM 安装常见)或 $CATALINA_HOME/conf(源码/解压安装常见)
- 应用与工作:$CATALINA_BASE/webapps、$CATALINA_BASE/work、$CATALINA_BASE/temp
- 日志:$CATALINA_BASE/logs(含 catalina.out 与按日期切分的日志)
- 快速确认你的实际路径:
- 查看服务单元:systemctl cat tomcat(关注 Environment=CATALINA_HOME/CATALINA_BASE)
- 查看进程:ps -ef | grep tomcat(关注 -Dcatalina.base= 与 -Dcatalina.home=)
- 常见 RPM 布局:/var/lib/tomcat(数据)、/etc/tomcat(配置)、/var/log/tomcat(日志)
- 常见解压布局:/opt/tomcat(即 CATALINA_HOME),/var/lib/tomcat(若另设 CATALINA_BASE)
以上目录用途与常见布局可参考 Tomcat 目录结构说明与 CentOS 常见安装路径示例。
二 手动一次性备份步骤
- 1)停止 Tomcat(尽量在业务低峰期执行)
- systemctl stop tomcat
- 2)创建备份目录
- mkdir -p /backup/tomcat/$(date +%F)
- 3)打包关键目录(按需选择,以下为常见组合)
- 配置:tar -czf /backup/tomcat/$(date +%F)/conf_$(date +%F).tar.gz -C /etc tomcat
- 应用与工作:tar -czf /backup/tomcat/$(date +%F)/apps_$(date +%F).tar.gz -C /var/lib/tomcat webapps work temp
- 日志:tar -czf /backup/tomcat/$(date +%F)/logs_$(date +%F).tar.gz -C /var/log tomcat
- 4)启动 Tomcat
- systemctl start tomcat
- 5)校验
- ls -lh /backup/tomcat/$(date +%F) 与 tar -tzf 备份文件 检查是否完整
以上流程与目录选择适用于 RPM 与解压安装两种常见形态。
- ls -lh /backup/tomcat/$(date +%F) 与 tar -tzf 备份文件 检查是否完整
三 自动化与远程备份脚本
- 本地每日备份并保留 N 天
- 示例脚本(保留最近 7 天,按你的实际路径修改 CATALINA_BASE 与 BACKUP_DIR):
#!/usr/bin/env bash set -euo pipefail CATALINA_BASE="/var/lib/tomcat" BACKUP_DIR="/backup/tomcat" RETAIN_DAYS=7 DATE=$(date +%F) mkdir -p "$BACKUP_DIR/$DATE" # 备份配置、应用与工作目录 tar -czf "$BACKUP_DIR/$DATE/conf_$DATE.tar.gz" -C /etc tomcat tar -czf "$BACKUP_DIR/$DATE/apps_$DATE.tar.gz" -C "$CATALINA_BASE" webapps work temp tar -czf "$BACKUP_DIR/$DATE/logs_$DATE.tar.gz" -C "$CATALINA_BASE" logs # 清理过期备份 find "$BACKUP_DIR" -maxdepth 1 -type d -mtime +$RETAIN_DAYS -exec rm -rf { } + echo "Backup $DATE completed." - 定时任务(每天 02:00 执行):
- crontab -e
- 0 2 * * * /usr/bin/bash /root/backup_tomcat.sh
- 示例脚本(保留最近 7 天,按你的实际路径修改 CATALINA_BASE 与 BACKUP_DIR):
- 远程备份(rsync 到备份服务器)
- 命令示例:rsync -avz --delete /backup/tomcat/ user@backup.example.com:/data/backup/tomcat/
- 也可在脚本中先本地打包,再用 rsync 上传到远端存储,便于多副本与异地容灾。
四 增量备份与日志轮转
- 增量备份(基于 tar 快照,每周日全量、其余增量)
- 思路:使用 tar -g snapshot 维护快照文件,周日删除快照并执行全量,其余天执行增量。
- 参考脚本框架(按你的目录与保留策略调整):
#!/usr/bin/env bash set -euo pipefail SRC="/var/lib/tomcat /etc/tomcat" BACKUP_BASE="/backup/tomcat_inc" SNAPSHOT="$BACKUP_BASE/snapshot" DATE=$(date +%F) WEEK=$(date +%u) # 1-7,周日=7 mkdir -p "$BACKUP_BASE/$DATE" if [ "$WEEK" -eq 7 ]; then rm -f "$SNAPSHOT" tar -g "$SNAPSHOT" -czf "$BACKUP_BASE/$DATE/full_$DATE.tar.gz" $SRC else tar -g "$SNAPSHOT" -czf "$BACKUP_BASE/$DATE/inc_$DATE.tar.gz" $SRC fi - 可按需增加旧备份清理逻辑(如保留最近 30 天)。
- 日志轮转与清理(避免日志无限增长)
- 使用 logrotate 管理 catalina.out 与按日期切分的日志(推荐)
- 或简单脚本按天归档并清理历史(示例思路):
- 将 catalina.out 按天复制备份后清空:cp catalina.out catalina.out.$(date -d ‘1 day ago’ +%F) & & > catalina.out
- 删除 N 天前归档:find /opt/tomcat/logs -name “catalina.out.*” -mtime +N -delete
增量备份与日志轮转方案可显著降低存储占用并提升恢复效率。
五 恢复步骤与注意事项
- 恢复步骤
- 1)停止 Tomcat:systemctl stop tomcat
- 2)恢复目录(按你的备份内容选择):
- tar -xzf /backup/tomcat/2025-08-01/conf_2025-08-01.tar.gz -C /
- tar -xzf /backup/tomcat/2025-08-01/apps_2025-08-01.tar.gz -C /var/lib/tomcat
- tar -xzf /backup/tomcat/2025-08-01/logs_2025-08-01.tar.gz -C /var/lib/tomcat
- 3)启动 Tomcat:systemctl start tomcat
- 4)校验:访问应用、查看 catalina.out 与业务日志是否正常
- 注意事项
- 备份一致性:尽量在停止写入时备份;若要求零停机,可考虑基于文件系统快照或先摘除部分流量再备份。
- 权限与属主:恢复后确保 tomcat 用户与组对相应目录具备正确权限(如 /var/lib/tomcat、/var/log/tomcat)。
- 版本与路径:跨小版本恢复时保持 CATALINA_HOME/CATALINA_BASE 一致;如路径变更,需同步调整配置中的路径与链接。
- 定期演练:定期做恢复演练与校验(如校验文件列表与关键业务页面/接口),确保备份可用。
以上恢复顺序与要点适用于 RPM 与解压安装形态。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 怎样在centos上备份tomcat数据
本文地址: https://pptw.com/jishu/754623.html
