如何在Ubuntu上备份Tomcat数据
导读:Ubuntu 上备份 Tomcat 数据的实用方案 一 备份范围与准备 明确需要保护的目录与数据: 配置与部署:$CATALINA_BASE/conf、$CATALINA_BASE/webapps(生产环境建议优先备份这两项)。 运行时...
Ubuntu 上备份 Tomcat 数据的实用方案
一 备份范围与准备
- 明确需要保护的目录与数据:
- 配置与部署:$CATALINA_BASE/conf、$CATALINA_BASE/webapps(生产环境建议优先备份这两项)。
- 运行时与工作目录:$CATALINA_BASE/work、$CATALINA_BASE/temp(可选,便于完整回滚)。
- 日志:$CATALINA_BASE/logs(可按需单独备份与长期保留)。
- 确认目录位置:
- 若通过包管理器安装,常见路径为:/var/lib/tomcat[版本]/webapps、/var/lib/tomcat[版本]/conf、/var/log/tomcat[版本]。
- 若手动安装,通常为:/opt/tomcat(此时 $CATALINA_BASE=/opt/tomcat)。
- 准备备份存放区:例如 /backup/tomcat,并确保磁盘空间充足与权限正确。
- 建议在执行全量备份前先停止 Tomcat,避免文件变更导致不一致(配置与程序包备份尤为建议):
- 停止命令示例:sudo systemctl stop tomcat 或 /opt/tomcat/bin/shutdown.sh。
二 手动一次性备份与恢复
- 备份命令示例(按实际路径调整):
- 全量备份(配置 + 应用 + 可选日志/工作目录):
sudo tar -czvf /backup/tomcat_full_$(date +%F).tar.gz \ /var/lib/tomcat9/conf \ /var/lib/tomcat9/webapps \ /var/lib/tomcat9/work /var/lib/tomcat9/temp \ /var/log/tomcat9 - 仅备份配置与应用(最常见):
sudo tar -czvf /backup/tomcat_app_conf_$(date +%F).tar.gz \ /var/lib/tomcat9/conf /var/lib/tomcat9/webapps - 仅备份日志:
sudo tar -czvf /backup/tomcat_logs_$(date +%F).tar.gz /var/log/tomcat9
- 全量备份(配置 + 应用 + 可选日志/工作目录):
- 恢复步骤:
- 先停止 Tomcat:sudo systemctl stop tomcat。
- 解压覆盖(示例为配置与应用):
sudo tar -xzvf /backup/tomcat_app_conf_2025-08-30.tar.gz -C / - 启动 Tomcat:sudo systemctl start tomcat。
三 自动化定时备份脚本
- 创建脚本 /opt/backup_tomcat.sh:
#!/usr/bin/env bash set -e # 可按实际环境修改 CATALINA_BASE="/var/lib/tomcat9" BACKUP_DIR="/backup/tomcat" KEEP_DAYS=7 DATE=$(date +%F) mkdir -p "$BACKUP_DIR" # 1) 配置与应用 tar -czf "$BACKUP_DIR/tomcat_app_conf_${ DATE} .tar.gz" \ -C "$CATALINA_BASE" conf webapps # 2) 日志(可选) tar -czf "$BACKUP_DIR/tomcat_logs_${ DATE} .tar.gz" \ -C "$CATALINA_BASE" logs # 3) 清理旧备份 find "$BACKUP_DIR" -name "tomcat_*.tar.gz" -mtime +${ KEEP_DAYS} -delete echo "Backup finished at $(date)" - 赋权并加入定时任务(每天 02:00 执行):
sudo chmod +x /opt/backup_tomcat.sh (crontab -l 2> /dev/null; echo "0 2 * * * /opt/backup_tomcat.sh") | crontab - - 如需远程留存,可在脚本中增加 rsync 或 scp 同步到备份服务器。
四 日志轮转与远程备份
- 使用 logrotate 管理日志(避免日志无限增长):
- 新建配置 /etc/logrotate.d/tomcat:
/var/log/tomcat9/*.log { daily rotate 7 compress missingok notifempty create 640 tomcat tomcat sharedscripts postrotate systemctl reload tomcat > /dev/null 2> & 1 || true endscript } - 测试与强制执行:
sudo logrotate -d /etc/logrotate.conf # 语法与执行计划演练 sudo logrotate -f /etc/logrotate.d/tomcat # 立即执行一次
- 新建配置 /etc/logrotate.d/tomcat:
- 远程备份示例(在备份脚本或单独任务中调用):
- rsync(增量、高效):
rsync -avz /backup/tomcat/ user@backup-server:/backup/tomcat/ - scp(简单拷贝):
scp /backup/tomcat/*.tar.gz user@backup-server:/backup/tomcat/
- rsync(增量、高效):
- 如应用使用数据库,务必同时备份数据库(示例为 MySQL):
恢复时使用:mysql -u USER -pPASSWORD DATABASE < /backup/tomcat_db_YYYY-MM-DD.sql。mysqldump -u USER -pPASSWORD --single-transaction --routines --triggers DATABASE > \ /backup/tomcat_db_$(date +%F).sql
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在Ubuntu上备份Tomcat数据
本文地址: https://pptw.com/jishu/755824.html
