首页主机资讯Debian LNMP环境的备份与恢复方法

Debian LNMP环境的备份与恢复方法

时间2025-11-19 10:59:03发布访客分类主机资讯浏览684
导读:Debian LNMP环境的备份与恢复方法 一 备份范围与准备 备份范围建议覆盖:Nginx 配置、网站文件、MySQL/MariaDB 数据库、PHP-FPM 配置(按实际版本),以及可选的日志与证书。 准备与约定: 备份目录:建议统...

Debian LNMP环境的备份与恢复方法

一 备份范围与准备

  • 备份范围建议覆盖:Nginx 配置网站文件MySQL/MariaDB 数据库PHP-FPM 配置(按实际版本),以及可选的日志与证书
  • 准备与约定:
    • 备份目录:建议统一放在如 /backups,并确保磁盘空间充足与权限正确(如使用 root 或具备 sudo 权限执行)。
    • PHP 版本:以实际为准(如 PHP 7.4/8.2),下文示例路径会体现版本差异。
    • 数据库凭据:准备好具有足够权限的数据库账号(如 root 或具备 SELECT/LOCK TABLES/SHOW VIEW 权限的专用账号)。

二 手动备份步骤

  • 数据库备份(MySQL/MariaDB)
    • 单库备份:
      • 命令:mysqldump -u 用户名 -p 数据库名 > /backups/mydatabase_$(date +%F).sql
    • 全库备份(含存储过程/触发器):
      • 命令:mysqldump -u root -p --single-transaction --routines --triggers --all-databases > /backups/full_$(date +%F).sql
    • 建议压缩:gzip /backups/mydatabase_$(date +%F).sql
  • 网站文件与目录
    • 打包备份:tar -czvf /backups/www_$(date +%F).tar.gz -C /var/www .
    • 或增量同步:rsync -avz /var/www/ /backups/www_$(date +%F)/
  • 配置文件备份
    • Nginx:tar -czvf /backups/nginx_conf_$(date +%F).tar.gz /etc/nginx
    • PHP-FPM(按版本调整路径):
      • 示例:tar -czvf /backups/php_fpm_$(date +%F).tar.gz /etc/php/8.2/fpm/
  • 可选:日志与证书
    • 日志:tar -czvf /backups/logs_$(date +%F).tar.gz /var/log/nginx /var/log/mysql
    • 证书:tar -czvf /backups/certs_$(date +%F).tar.gz /etc/letsencrypt

三 自动备份方案

  • 数据库定时备份脚本(示例)
    • 脚本路径:/usr/local/bin/backup_mysql.sh
    • 内容:
      #!/bin/bash
      BACKUP_DIR="/backups/mysql"
      DATE=$(date +"%Y%m%d%H%M%S")
      DB_USER="backup_user"
      DB_PASS="StrongPass!23"
      DB_NAME="mydatabase"
      
      mkdir -p "$BACKUP_DIR"
      mysqldump -u"$DB_USER" -p"$DB_PASS" --single-transaction --routines --triggers "$DB_NAME" \
        >
       "$BACKUP_DIR/${
      DB_NAME}
      -${
      DATE}
      .sql"
      gzip "$BACKUP_DIR/${
      DB_NAME}
      -${
      DATE}
          .sql"
      
      # 保留最近30天
      find "$BACKUP_DIR" -type f -name "*.sql.gz" -mtime +30 -delete
      
    • 赋权:chmod +x /usr/local/bin/backup_mysql.sh
    • Crontab(每天 02:00):0 2 * * * /usr/local/bin/backup_mysql.sh > > /var/log/backup_mysql.log 2> & 1
  • 配置与网站文件定时备份(示例)
    • Nginx(每天 03:00):
      0 3 * * * tar -czf /backups/nginx_conf_$(date +\%F).tar.gz -C /etc/nginx . >
          >
           /var/log/backup_nginx.log 2>
          &
          1
      
    • 网站文件(每天 04:00):
      0 4 * * * tar -czf /backups/www_$(date +\%F).tar.gz -C /var/www . >
          >
           /var/log/backup_www.log 2>
          &
          1
      
  • 建议为脚本增加日志与错误告警,便于追踪与及时处置。

四 恢复流程

  • 全新环境恢复顺序
    • 安装基础组件:
      • sudo apt-get update & & sudo apt-get install nginx mariadb-server php-fpm php-mysql
      • 数据库安全初始化:sudo mysql_secure_installation
    • 恢复数据库:
      • 单库:mysql -u 用户名 -p 数据库名 < /backups/mydatabase_YYYY-MM-DD.sql
      • 全库:mysql -u root -p < /backups/full_YYYY-MM-DD.sql
    • 恢复网站文件:
      • 解压覆盖:tar -xzvf /backups/www_YYYY-MM-DD.tar.gz -C /var/www
      • 或同步:rsync -avz /backups/www_YYYY-MM-DD/ /var/www/
    • 恢复配置:
      • Nginx:tar -xzvf /backups/nginx_conf_YYYY-MM-DD.tar.gz -C /
      • PHP-FPM(按版本):tar -xzvf /backups/php_fpm_YYYY-MM-DD.tar.gz -C /
    • 权限与校验:
      • 网站目录属主(示例):chown -R www-data:www-data /var/www
      • 配置语法检查与重载:
        • Nginx:nginx -t & & systemctl reload nginx
        • PHP-FPM:systemctl restart php8.2-fpm(按实际版本)
  • 原地覆盖恢复
    • 建议先停用服务(可选,减少写入冲突):systemctl stop nginx php8.2-fpm mariadb
    • 按“数据库 → 网站文件 → 配置”的顺序恢复,完成后执行语法检查与重载,最后启动服务:systemctl start mariadb php8.2-fpm nginx
  • 验证要点
    • 访问站点首页与关键接口,查看 Nginx 错误日志tail -f /var/log/nginx/error.log
    • 查看 MariaDB 错误日志tail -f /var/log/mysql/error.log
    • 核对数据库数据一致性与文件完整性。

五 注意事项与最佳实践

  • 一致性与锁:数据库备份建议使用 --single-transaction 获取一致性快照;如含 MyISAM 表,可考虑短暂锁表或改用 InnoDB。
  • 版本与路径:恢复时确保 DebianNginxPHP 与备份时版本尽量一致;PHP-FPM 套接字路径(如 /var/run/php/php8.2-fpm.sock)需与 Nginx 配置一致。
  • 安全与隔离:备份文件含敏感信息,设置合适的权限(如 600/700),并考虑异地/离线存储;数据库账号遵循最小权限原则。
  • 保留与监控:设置合理的保留策略(如 30 天),并保留脚本与任务日志;定期做恢复演练验证可用性。
  • 大站点策略:对海量小文件或频繁变更的数据,优先使用 rsync 增量;对数据库可考虑 Percona XtraBackup 等物理备份方案以提升效率与恢复速度。

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


若转载请注明出处: Debian LNMP环境的备份与恢复方法
本文地址: https://pptw.com/jishu/750966.html
如何在Debian上搭建LNMP测试环境 LNMP在Debian上的数据库优化技巧

游客 回复需填写必要信息