首页主机资讯CentOS系统如何进行网站备份与恢复

CentOS系统如何进行网站备份与恢复

时间2025-11-28 15:18:04发布访客分类主机资讯浏览876
导读:CentOS网站备份与恢复实操指南 一 备份范围与准备 明确需要纳入备份的范围:网站文件(如 /var/www/html 或自定义 DocumentRoot)、数据库(MySQL/MariaDB 或 PostgreSQL)、以及 Web...

CentOS网站备份与恢复实操指南

一 备份范围与准备

  • 明确需要纳入备份的范围:网站文件(如 /var/www/html 或自定义 DocumentRoot)、数据库(MySQL/MariaDBPostgreSQL)、以及 Web 服务配置(Nginx:/etc/nginxApache:/etc/httpd),必要时可包含日志(如 /var/log/nginx/var/log/httpd)。
  • 准备备份存储目录(如 /backup),并确保运行备份的用户对相关目录有读写权限;数据库备份建议使用具备足够权限的数据库账户。
  • 建议先在测试环境演练恢复流程,验证备份的可用性与完整性。

二 手动备份与恢复步骤

  • 文件备份与恢复
    • 备份:
      • Nginx:tar -czvf /backup/nginx_conf_$(date +%F).tar.gz /etc/nginx
      • Apache:tar -czvf /backup/httpd_conf_$(date +%F).tar.gz /etc/httpd
      • 网站文件:tar -czvf /backup/www_$(date +%F).tar.gz /var/www/html
    • 恢复:
      • Nginx:tar -xzvf /backup/nginx_conf_$(date +%F).tar.gz -C /
      • Apache:tar -xzvf /backup/httpd_conf_$(date +%F).tar.gz -C /
      • 网站文件:tar -xzvf /backup/www_$(date +%F).tar.gz -C /
  • 数据库备份与恢复
    • MySQL/MariaDB:
      • 备份单库:mysqldump -u 用户名 -p 数据库名 > /backup/db_$(date +%F).sql
      • 备份全库:mysqldump -u root -p --all-databases > /backup/all_databases_$(date +%F).sql
      • 恢复:mysql -u 用户名 -p 数据库名 < /backup/db_$(date +%F).sql(全库恢复使用 mysql -u root -p < /backup/all_databases_$(date +%F).sql)
    • PostgreSQL:
      • 备份:pg_dumpall > /backup/pg_all_$(date +%F).sql
      • 恢复:psql -U 用户名 -f /backup/pg_all_$(date +%F).sql
  • 服务配置校验与重启
    • Nginx:nginx -t & & systemctl restart nginx
    • Apache:httpd -t & & systemctl restart httpd

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

  • 示例脚本 backup.sh(按时间戳组织备份,含全库备份与本地保留策略)
    #!/bin/bash
    set -e
    BACKUP_DIR="/backup/$(date +%F_%H%M%S)"
    mkdir -p "$BACKUP_DIR"
    
    # 网站文件
    tar -czvf "$BACKUP_DIR/www.tar.gz" -C /var/www html
    
    # 数据库(全库)
    mysqldump -u root -p --single-transaction --routines --triggers --hex-blob --all-databases \
      >
     "$BACKUP_DIR/all_databases.sql"
    
    # 配置与服务
    tar -czvf "$BACKUP_DIR/nginx_conf.tar.gz" -C /etc nginx
    
    # 保留最近7天
    find /backup -maxdepth 1 -type d -mtime +7 -exec rm -rf {
    }
         \;
        
    
    • 赋权与定时:
      • chmod +x /root/backup.sh
      • crontab -e 添加:0 2 * * * /root/backup.sh(每日 02:00 执行)
  • 远程与多方式留存(可选)
    • FTP 上传示例(脚本内使用 ftp 或 lftp 将 $BACKUP_DIR 下文件传至远程 FTP,并清理远端过期备份)。
    • 也可扩展为将备份同步至对象存储或异地服务器,提升容灾能力。

四 增量备份与异地容灾

  • 文件级增量备份(rsync)
    • 首次全量:rsync -aAX --delete /var/www/html /backup/html_full/
    • 日常增量:rsync -aAX --delete /var/www/html /backup/html_incr/
    • 恢复:rsync -aAX /backup/html_full/ /var/www/html 或 rsync -aAX /backup/html_incr/ /var/www/html
  • 数据库变更捕获(适用于频繁写入)
    • 在备份前临时开启二进制日志(如 MySQL 的 binlog),将备份时刻之后的 binlog 一并归档,便于时间点恢复(PITR)。
  • 系统级与灾难恢复
    • 需要整机级回滚时,可使用 Relax-and-Recover(ReaR) 进行系统级备份与救援恢复(适合硬件故障、系统崩溃等场景)。

五 恢复流程与验证清单

  • 恢复顺序建议:先恢复数据库,再恢复网站文件,最后恢复配置并校验服务。
  • 配置与服务
    • Nginx:tar -xzvf /backup/nginx_conf_*.tar.gz -C / & & nginx -t & & systemctl restart nginx
    • Apache:tar -xzvf /backup/httpd_conf_*.tar.gz -C / & & httpd -t & & systemctl restart httpd
  • 数据库
    • 单库:mysql -u 用户名 -p 数据库名 < /backup/db_*.sql
    • 全库:mysql -u root -p < /backup/all_databases_*.sql
  • 验证要点
    • 访问站点首页与关键功能,确认静态资源、数据库连接、登录与写入正常。
    • 抽查后台管理、文件上传、定时任务与缓存写入是否正常。
    • 查看错误日志定位问题:Nginx(/var/log/nginx/error.log)、Apache(/var/log/httpd/error_log)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS系统如何进行网站备份与恢复
本文地址: https://pptw.com/jishu/759083.html
CentOS上如何实现负载均衡 CentOS中如何配置高效的缓存策略

游客 回复需填写必要信息