温馨提示×

Ubuntu下Tomcat备份与恢复方法

小樊
40
2025-11-09 11:12:19
栏目: 智能运维

Ubuntu下Tomcat备份与恢复方法

一、备份方法

1. 停止Tomcat服务(可选但推荐)

为避免备份过程中文件被修改导致数据不一致,建议先停止Tomcat服务。执行以下命令:
sudo systemctl stop tomcat
若无法停止服务(如生产环境不允许停机),可直接备份,但需承担数据不一致风险。

2. 备份核心数据

Tomcat的核心数据包括配置文件Web应用程序日志文件,部分场景需备份关联数据库

  • 配置文件与Web应用:Tomcat的配置文件(如server.xmlweb.xml)位于/conf目录,Web应用位于/webapps目录。使用tar命令打包这两个目录(保留目录结构):
    sudo tar -czvf /backup/tomcat_config_webapps_$(date +%Y%m%d).tar.gz /path/to/tomcat/conf /path/to/tomcat/webapps
    (注:/path/to/tomcat需替换为实际Tomcat安装路径,如/opt/tomcat/usr/share/tomcat9
  • 日志文件:Tomcat日志默认存放在/logs目录(如catalina.outlocalhost_access_log.*.txt)。备份命令:
    sudo tar -czvf /backup/tomcat_logs_$(date +%Y%m%d).tar.gz /path/to/tomcat/logs
    若需自动清理7天前的旧日志,可添加find命令:
    sudo find /path/to/tomcat/logs -mtime +7 -type f -delete
  • 关联数据库:若Tomcat应用连接MySQL、PostgreSQL等数据库,需备份数据库文件。以MySQL为例,使用mysqldump导出指定数据库:
    mysqldump -u [username] -p[password] [database_name] > /backup/tomcat_db_[database_name]_$(date +%Y%m%d).sql
    (注:[username][password][database_name]需替换为实际值,密码与用户名之间无空格)

3. 自动化备份(可选)

通过脚本+定时任务实现定期自动备份:

  • 编写备份脚本:创建/opt/backup_tomcat.sh,内容如下:
    #!/bin/bash
    BACKUP_DIR="/backup"
    TOMCAT_PATH="/opt/tomcat"
    DATE=$(date +%Y%m%d)
    
    # 备份配置文件与Web应用
    tar -czvf "$BACKUP_DIR/tomcat_config_webapps_$DATE.tar.gz" "$TOMCAT_PATH/conf" "$TOMCAT_PATH/webapps"
    # 备份日志文件并清理旧日志
    tar -czvf "$BACKUP_DIR/tomcat_logs_$DATE.tar.gz" "$TOMCAT_PATH/logs"
    find "$TOMCAT_PATH/logs" -mtime +7 -type f -delete
    # 备份数据库(若有)
    # mysqldump -u root -p123456 mydb > "$BACKUP_DIR/mydb_$DATE.sql"
    
    赋予脚本执行权限:sudo chmod +x /opt/backup_tomcat.sh
  • 设置定时任务:使用crontab -e添加以下行,实现每天凌晨2点自动备份:
    0 2 * * * /opt/backup_tomcat.sh

4. 日志备份专用策略(补充)

除上述通用方法外,Tomcat日志可通过以下方式单独管理:

  • 使用logrotate:Ubuntu自带logrotate工具,可自动轮转、压缩、删除旧日志。创建/etc/logrotate.d/tomcat文件,内容如下:
    /opt/tomcat/logs/*.log { daily rotate 7 compress missingok notifempty create 0644 tomcat tomcat sharedscripts postrotate systemctl reload tomcat > /dev/null endscript }
    该配置表示:每天轮转日志,保留7个压缩文件,压缩后文件权限为0644,所有者为tomcat用户(需根据实际用户调整)

二、恢复方法

1. 停止Tomcat服务

恢复前需停止Tomcat,避免文件冲突:
sudo systemctl stop tomcat

2. 恢复核心数据

  • 配置文件与Web应用:将备份的压缩包解压到Tomcat根目录(覆盖原有文件):
    sudo tar -xzvf /backup/tomcat_config_webapps_YYYYMMDD.tar.gz -C /path/to/tomcat
    (注:YYYYMMDD为备份日期,如20251109
  • 日志文件:解压日志备份包到日志目录:
    sudo tar -xzvf /backup/tomcat_logs_YYYYMMDD.tar.gz -C /path/to/tomcat/logs
  • 关联数据库:若备份了数据库,使用mysql命令导入:
    mysql -u [username] -p[password] [database_name] < /backup/tomcat_db_[database_name]_YYYYMMDD.sql

3. 启动Tomcat服务

恢复完成后,启动Tomcat使配置生效:
sudo systemctl start tomcat
可通过sudo systemctl status tomcat检查服务状态

0