温馨提示×

怎么备份Debian LNMP

小樊
43
2026-08-26 02:23:13
栏目: 智能运维

Debian 系统上备份 LNMP(Linux + Nginx + MySQL/MariaDB + PHP) 一般包含 网站文件、数据库、Nginx/PHP 配置、SSL 证书 等。下面给你一套完整、可操作的备份方案,从简单到规范都有。


一、备份内容总览

类型 路径/内容
网站文件 /var/www/
Nginx 配置 /etc/nginx/
PHP 配置 /etc/php/
MySQL/MariaDB 数据 数据库本身
SSL 证书 /etc/letsencrypt/
系统服务配置 /etc/systemd/(可选)
定时任务 /etc/cron.d/crontab -l

二、手动备份(最常用)

1️⃣ 创建备份目录

mkdir -p /backup/lnmp-$(date +%F)
cd /backup/lnmp-$(date +%F)

2️⃣ 备份网站文件

tar czf www.tar.gz /var/www

3️⃣ 备份 Nginx 配置

tar czf nginx.tar.gz /etc/nginx

4️⃣ 备份 PHP 配置

tar czf php.tar.gz /etc/php

5️⃣ 备份 MySQL / MariaDB 数据库(重点)

✅ 推荐方式(一致性最好)

mysqldump -u root -p --all-databases > mysql_all.sql

或单库:

mysqldump -u root -p dbname > dbname.sql

✅ 压缩数据库

gzip mysql_all.sql

6️⃣ 备份 SSL 证书(Let’s Encrypt)

tar czf letsencrypt.tar.gz /etc/letsencrypt

⚠️ 注意:

  • Let’s Encrypt 不能只复制证书文件
  • 恢复时直接解压即可

7️⃣ 备份定时任务

crontab -l > crontab.txt

三、一键备份脚本(推荐)

#!/bin/bash

DATE=$(date +%F)
DIR=/backup/lnmp-$DATE

mkdir -p $DIR

tar czf $DIR/www.tar.gz /var/www
tar czf $DIR/nginx.tar.gz /etc/nginx
tar czf $DIR/php.tar.gz /etc/php
tar czf $DIR/letsencrypt.tar.gz /etc/letsencrypt

mysqldump -u root -p'数据库密码' --all-databases | gzip > $DIR/mysql_all.sql.gz

crontab -l > $DIR/crontab.txt

echo "LNMP backup done: $DIR"

赋予执行权限:

chmod +x /root/lnmp_backup.sh

四、自动定时备份(cron)

crontab -e

每天凌晨 2 点执行:

0 2 * * * /root/lnmp_backup.sh >> /var/log/lnmp_backup.log 2>&1

五、恢复 LNMP(灾难恢复)

1️⃣ 恢复网站

tar xzf www.tar.gz -C /

2️⃣ 恢复 Nginx

tar xzf nginx.tar.gz -C /
systemctl restart nginx

3️⃣ 恢复数据库

gunzip < mysql_all.sql.gz | mysql -u root -p

4️⃣ 恢复 SSL

tar xzf letsencrypt.tar.gz -C /

六、进阶建议(生产环境)

✅ 使用 rsync 同步到远程服务器
✅ 使用 Borg / Restic 做增量备份
✅ 数据库使用 xtrabackup(大库)
✅ 备份完成后 校验文件完整性


七、常见错误

❌ 直接复制 /var/lib/mysql(数据库可能损坏)
❌ 忘记备份 Nginx 的 sites-enabled
❌ 权限问题导致恢复后网站 403/500


八、我可以继续帮你

你可以告诉我:

  • ✅ Debian 版本(10 / 11 / 12)
  • ✅ MySQL 还是 MariaDB
  • ✅ 单机还是云服务器
  • ✅ 是否需要 远程备份脚本

我可以给你 完全定制版备份方案

0