温馨提示×

Tomcat在CentOS上的备份方法

小樊
35
2025-12-07 15:31:18
栏目: 智能运维

CentOS 上备份 Tomcat 的实用方法

一 备份范围与准备

  • 明确需要备份的内容:应用与数据目录(如 webappsworktemp)、配置目录(conf)、日志目录(logs),以及自定义的 JAVA_HOME/CATALINA_HOME/CATALINA_BASE 等环境变量与脚本。常见路径示例:/opt/tomcat/usr/share/tomcat/var/lib/tomcat/etc/tomcat。先确认你的实际安装路径与用户(常见为 tomcat)。
  • 选择备份时机:建议在业务低峰期操作;对一致性要求高的场景先停止 Tomcat,避免备份过程中文件被修改。
  • 准备备份存储:确保有足够的磁盘空间,并规划保留周期与异地/远程存放策略。

二 手动备份步骤

  • 停止 Tomcat(可选,追求一致性时建议):sudo systemctl stop tomcat
  • 创建备份目录:sudo mkdir -p /backup/tomcat
  • 打包关键目录(按你的实际路径调整):
    • 数据与应用:sudo tar -czvf /backup/tomcat_backup_$(date +%Y%m%d%H%M%S).tar.gz /opt/tomcat/webapps /opt/tomcat/work /opt/tomcat/temp
    • 配置:sudo tar -czvf /backup/tomcat_conf_$(date +%Y%m%d%H%M%S).tar.gz /opt/tomcat/conf
    • 日志:sudo tar -czvf /backup/tomcat_logs_$(date +%Y%m%d%H%M%S).tar.gz /opt/tomcat/logs
  • 若使用系统包安装的 Tomcat,常见目录可能是 /var/lib/tomcat/etc/tomcat,对应替换上述路径即可。
  • 验证归档:ls -lh /backup/,必要时抽查压缩包内容:tar -tzvf /backup/tomcat_backup_*.tar.gz | head
  • 启动 Tomcat(若之前停止):sudo systemctl start tomcat

三 自动化备份脚本与定时任务

  • 备份脚本示例(按需调整路径与保留天数):
    #!/bin/bash
    set -e
    
    BACKUP_ROOT="/backup/tomcat"
    DATE=$(date +%Y%m%d%H%M%S)
    KEEP_DAYS=7
    
    # 若需一致性,取消下一行注释
    # systemctl stop tomcat || true
    
    mkdir -p "$BACKUP_ROOT"
    
    tar czf "$BACKUP_ROOT/tomcat_apps_${DATE}.tar.gz"  /opt/tomcat/webapps /opt/tomcat/work /opt/tomcat/temp
    tar czf "$BACKUP_ROOT/tomcat_conf_${DATE}.tar.gz"   /opt/tomcat/conf
    tar czf "$BACKUP_ROOT/tomcat_logs_${DATE}.tar.gz"   /opt/tomcat/logs
    
    # 清理旧备份
    find "$BACKUP_ROOT" -name "tomcat_*.tar.gz" -mtime +${KEEP_DAYS} -delete
    
    # 若之前停止,取消下一行注释
    # systemctl start tomcat
    
  • 赋权并测试:chmod +x /opt/scripts/backup_tomcat.sh && /opt/scripts/backup_tomcat.sh
  • 定时任务(每天 01:00 执行):
    • 编辑:crontab -e
    • 添加:0 1 * * * /opt/scripts/backup_tomcat.sh >> /var/log/backup_tomcat.log 2>&1
  • 确保 cron 服务运行:sudo systemctl enable --now crond(或 crond,视系统而定)。

四 远程备份与扩展

  • FTP 上传示例(脚本化自动备份并上传到 Windows Server FTP):
    #!/bin/bash
    BACKUP_DIR="/backup/tomcat"
    DATE=$(date +%Y%m%d%H%M%S)
    FILE="tomcat_${DATE}.tar.gz"
    cd "$BACKUP_DIR"
    tar czf "$FILE" /opt/tomcat/webapps /opt/tomcat/conf /opt/tomcat/logs
    
    ftp -v -n << EOF
    open 192.168.162.162
    user test Test@2022
    binary
    cd /backup/EGEIG/
    put $FILE
    quit
    EOF
    
    rm -f "$FILE"
    
  • 可结合定时任务实现按日/周/月自动上传与本地保留策略。

五 恢复步骤与注意事项

  • 恢复步骤:
    1. 停止 Tomcat:sudo systemctl stop tomcat
    2. 恢复数据/应用:sudo tar -xzvf /backup/tomcat_apps_YYYYMMDDHHMMSS.tar.gz -C /
    3. 恢复配置:sudo tar -xzvf /backup/tomcat_conf_YYYYMMDDHHMMSS.tar.gz -C /
    4. 恢复日志(可选):sudo tar -xzvf /backup/tomcat_logs_YYYYMMDDHHMMSS.tar.gz -C /
    5. 启动 Tomcat:sudo systemctl start tomcat
  • 注意事项:
    • 路径一致性:打包与解包的目标前缀需与实际安装路径一致(如 /opt/tomcat/usr/share/tomcat)。
    • 权限与属主:恢复后确保目录属主为 tomcat:tomcat,如:sudo chown -R tomcat:tomcat /opt/tomcat
    • 版本升级前务必先完整备份;升级完成并验证无误后再清理旧版本与旧备份。
    • 建议将备份文件同步到远程存储或对象存储,避免单点故障。

0