怎么备份Debian LNMP数据

2026-07-03技术问答86760

备份 Debian 上 LNMP(Linux + Nginx + MySQL/MariaDB + PHP) 的核心目标是:
网站文件
数据库数据
Nginx / PHP 配置
备份可恢复、可自动化

下面给你一套 实战级备份方案,从手动到自动方案都有。


一、备份前准备

先确认环境:

uname -a
lsb_release -a
nginx -v
mysql --version
php -v

建议备份目录:

mkdir -p /backup/lnmp/{www,db,conf}

二、备份网站数据(Nginx)

1️⃣ 默认网站目录

tar czf /backup/lnmp/www/www_$(date +%F).tar.gz /var/www

如果是多个站点:

tar czf /backup/lnmp/www/sites_$(date +%F).tar.gz /etc/nginx/sites-enabled /var/www

2️⃣ 保留 7 天

find /backup/lnmp/www -name "*.tar.gz" -mtime +7 -delete

三、备份数据库(MySQL / MariaDB)

✅ 推荐方式:mysqldump

1️⃣ 备份所有数据库

mysqldump -u root -p --all-databases > /backup/lnmp/db/all_$(date +%F).sql

2️⃣ 压缩

gzip /backup/lnmp/db/all_$(date +%F).sql

3️⃣ 只备份某库(更常用)

mysqldump -u root -p dbname > /backup/lnmp/db/dbname_$(date +%F).sql

4️⃣ 自动输入密码(可选)

不推荐明文,推荐 .my.cnf

vim ~/.my.cnf
[client]
user=root
password=你的密码

权限:

chmod 600 ~/.my.cnf

四、备份 Nginx / PHP 配置

1️⃣ Nginx

tar czf /backup/lnmp/conf/nginx_$(date +%F).tar.gz /etc/nginx

2️⃣ PHP(以 PHP 8.2 为例)

tar czf /backup/lnmp/conf/php_$(date +%F).tar.gz /etc/php/8.2

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

1️⃣ 创建脚本

vim /usr/local/bin/backup_lnmp.sh
#!/bin/bash

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

# 备份网站
tar czf $BACKUP_DIR/www/www_$DATE.tar.gz /var/www

# 备份数据库
mysqldump --all-databases | gzip > $BACKUP_DIR/db/db_$DATE.sql.gz

# 备份配置
tar czf $BACKUP_DIR/conf/nginx_$DATE.tar.gz /etc/nginx
tar czf $BACKUP_DIR/conf/php_$DATE.tar.gz /etc/php

# 清理旧备份
find $BACKUP_DIR -name "*.tar.gz" -mtime +7 -delete
find $BACKUP_DIR -name "*.sql.gz" -mtime +7 -delete

2️⃣ 赋权

chmod +x /usr/local/bin/backup_lnmp.sh

六、定时自动备份(cron)

crontab -e

每天凌晨 2 点:

0 2 * * * /usr/local/bin/backup_lnmp.sh > /var/log/lnmp_backup.log 2>&1

七、远程备份(强烈推荐)

1️⃣ rsync 到远程服务器

rsync -avz /backup/lnmp/ user@remote:/data/backup/debian_lnmp

2️⃣ SCP(简单)

scp -r /backup/lnmp user@remote:/backup/

八、恢复示例(重点)

恢复网站

tar xzf /backup/lnmp/www/www_2026-01-21.tar.gz -C /

恢复数据库

gunzip < db_2026-01-21.sql.gz | mysql -u root -p

恢复 Nginx

tar xzf nginx_2026-01-21.tar.gz -C /
systemctl restart nginx

九、备份策略建议 ✅

类型 频率
网站文件 每日 / 实时
数据库 每 6 小时
配置文件 每周
远程冷备 每日

十、我可以进一步帮你

你可以告诉我:

  • ✅ Debian 版本(10 / 11 / 12)
  • ✅ MySQL 还是 MariaDB
  • ✅ 单站点还是多站点
  • ✅ 是否需要 Docker / 云服务器备份

我可以 直接给你定制版备份脚本 + systemd timer 方案

《怎么备份Debian LNMP数据.doc》

下载本文的Word格式文档,以方便收藏与打印。