温馨提示
×
立即登录
立即注册
云计算
编程语言
网络安全
智能运维
大数据
深度学习
登 录
注册有礼
控制台
用户中心
财务账户
优惠券
充值
退出
云服务器
香港服务器
高防服务器
最新更新
网站标签
地图导航
产品
首页
>
问答
>
智能运维
>
Debian LNMP如何进行备份与恢复
Debian LNMP如何进行备份与恢复
debian
小樊
38
2025-11-29 01:34:51
栏目:
智能运维
Debian LNMP 备份与恢复实操指南
一 备份范围与准备
备份范围建议覆盖:
Nginx 配置
、
网站文件
、
MariaDB/MySQL 数据库
、
PHP-FPM 配置
、可选的
日志与证书
。
准备与约定:
备份目录建议统一,如:
/opt/backup/
,并按天创建子目录。
数据库凭据建议使用**~/.my.cnf**方式避免明文密码出现在命令行历史。
为安全与一致性,数据库备份时建议短暂停止写入或使用事务一致性选项(如 InnoDB)。
二 手动备份步骤
Nginx 配置
建议先校验配置再备份,减少因配置错误导致服务异常的风险:
sudo nginx -t
备份命令示例:
sudo cp -a /etc/nginx /opt/backup/nginx-$(date +%F)
网站文件
常见路径为:
/var/www/
或
/var/www/html
,按需调整:
sudo cp -a /var/www /opt/backup/www-$(date +%F)
MariaDB/MySQL 数据库
单库备份(推荐):
mysqldump -u 用户名 -p 数据库名 > /opt/backup/db_数据库名-$(date +%F).sql
全库备份:
mysqldump -u root -p --all-databases > /opt/backup/full_db-$(date +%F).sql
压缩备份(可选):
gzip /opt/backup/*.sql
PHP-FPM 配置
备份当前 PHP 版本的 FPM 配置与池配置(请将
8.2
替换为你的实际版本):
sudo cp -a /etc/php/8.2/fpm /opt/backup/php-fpm-$(date +%F)
证书与日志(可选)
证书:sudo cp -a /etc/letsencrypt /opt/backup/letsencrypt-$(date +%F)
日志:sudo tar czf /opt/backup/logs-$(date +%F).tar.gz -C /var/log .
使用 .my.cnf 安全存放凭据(推荐)
创建文件:~/.my.cnf
[client]
user=root
password=你的密码
赋权:chmod 600 ~/.my.cnf
之后可直接执行:mysqldump --all-databases > backup.sql(无需在命令行暴露密码)。
三 自动备份脚本与定时任务
数据库备份脚本(/opt/backup/backup_mysql.sh)
示例(使用 ~/.my.cnf,无需在命令行写密码):
#!/bin/bash
BACKUP_DIR=“/opt/backup/mysql”
DATE=$(date +“%Y%m%d%H%M%S”)
mkdir -p “$BACKUP_DIR”
mysqldump --single-transaction --routines --triggers --default-character-set=utf8mb4 --all-databases > “$BACKUP_DIR/full-$DATE.sql”
gzip “$BACKUP_DIR/full-$DATE.sql”
find “$BACKUP_DIR” -type f -name “*.sql.gz” -mtime +30 -delete
echo “[$DATE] MySQL backup finished.” >> “$BACKUP_DIR/backup.log”
赋权:chmod +x /opt/backup/backup_mysql.sh
Nginx 配置备份脚本(/opt/backup/backup_nginx.sh)
#!/bin/bash
BACKUP_DIR=“/opt/backup/nginx”
DATE=$(date +“%Y%m%d%H%M%S”)
mkdir -p “$BACKUP_DIR”
cp -a /etc/nginx “$BACKUP_DIR/nginx-$DATE”
gzip “$BACKUP_DIR/nginx-$DATE”
find “$BACKUP_DIR” -type f -name “nginx-*.tar.gz” -mtime +30 -delete
echo “[$DATE] Nginx config backup finished.” >> “$BACKUP_DIR/backup.log”
赋权:chmod +x /opt/backup/backup_nginx.sh
网站文件备份脚本(/opt/backup/backup_www.sh)
#!/bin/bash
BACKUP_DIR=“/opt/backup/www”
DATE=$(date +“%Y%m%d%H%M%S”)
mkdir -p “$BACKUP_DIR”
tar czf “$BACKUP_DIR/www-$DATE.tar.gz” -C /var/www .
find “$BACKUP_DIR” -type f -name “www-*.tar.gz” -mtime +30 -delete
echo “[$DATE] WWW backup finished.” >> “$BACKUP_DIR/backup.log”
赋权:chmod +x /opt/backup/backup_www.sh
定时任务(crontab -e)
每天 02:00 数据库、03:00 Nginx、04:00 网站文件:
0 2 * * * /opt/backup/backup_mysql.sh
0 3 * * * /opt/backup/backup_nginx.sh
0 4 * * * /opt/backup/backup_www.sh
说明
保留策略示例为
30 天
,可按需调整为
7 天
或更长。
建议在脚本中加入日志与错误检查,便于排障与审计。
四 恢复步骤
恢复 Nginx 配置
建议先备份当前配置,再覆盖恢复:
sudo cp -a /etc/nginx /etc/nginx.bak-$(date +%F)
sudo rm -rf /etc/nginx/*
sudo cp -a /opt/backup/nginx-YYYY-MM-DD/* /etc/nginx/
sudo nginx -t && sudo systemctl reload nginx
恢复网站文件
视情况先备份现有目录:
sudo cp -a /var/www /var/www.bak-$(date +%F)
sudo rm -rf /var/www/*
sudo tar xzf /opt/backup/www-YYYY-MM-DD.tar.gz -C /
恢复 MariaDB/MySQL
建议先启动数据库服务并运行安全初始化(如首次恢复):
sudo systemctl start mariadb
sudo mysql_secure_installation
恢复全库或单库:
全库:mysql -u root -p < /opt/backup/mysql/full-YYYYMMDDHHMMSS.sql.gz
如为压缩包:zcat /opt/backup/mysql/full-YYYYMMDDHHMMSS.sql.gz | mysql -u root -p
单库:mysql -u 用户名 -p 数据库名 < /opt/backup/mysql/db_数据库名-YYYY-MM-DD.sql
恢复 PHP-FPM 配置
备份当前配置后覆盖恢复(将
8.2
替换为你的实际版本):
sudo cp -a /etc/php/8.2/fpm /etc/php/8.2/fpm.bak-$(date +%F)
sudo rm -rf /etc/php/8.2/fpm/*
sudo cp -a /opt/backup/php-fpm-YYYY-MM-DD/* /etc/php/8.2/fpm/
sudo systemctl restart php8.2-fpm
验证
检查服务状态:
sudo systemctl status nginx mariadb php8.2-fpm
查看错误日志定位问题:
sudo tail -n50 /var/log/nginx/error.log
sudo tail -n50 /var/log/mysql/error.log。
五 注意事项与最佳实践
一致性优先:数据库备份使用**–single-transaction**(InnoDB)避免锁表;大型数据库可分库/分表备份。
保留策略:至少保留
7–30 天
;关键业务建议增加
异地/离线
副本。
安全性:备份文件含敏感信息,设置
600
权限,存放于受限目录;传输到外部存储时使用
加密
。
版本与路径:恢复时确保
Debian
、
Nginx
、
MariaDB/MySQL
、
PHP
版本与路径一致;如版本不一致,先小范围验证兼容性。
定期演练:定期在测试环境进行
恢复演练
,校验备份可用性与完整性。
监控与告警:为备份任务添加
日志与告警
,一旦出现失败及时通知并排查。
0
赞
0
踩
最新问答
centos虚拟机常见问题及解决方案
centos虚拟机集群搭建技巧
centos虚拟机日志查看方法
centos虚拟机系统升级流程
centos虚拟机更新注意事项
centos虚拟机网络配置怎样
centos spool软件冲突怎么解决
centos spool网络设置怎样优化
CentOS Swap如何关闭和开启
相关问答
如何提升Debian LNMP稳定性
LNMP在Debian上的备份与恢复技巧
Debian LNMP如何备份与恢复
LNMP在Debian上的备份与恢复策略
Debian LNMP如何提高稳定性
LNMP在Debian上的备份策略是什么
Debian LNMP备份与恢复技巧
Debian LNMP环境如何进行备份与恢复
Debian LNMP如何进行数据备份与恢复
相关标签
云服务器
mysql
python3
windows
linux
nginx
ubuntu
centos
openssl
docker
vscode
nvidia
virtualbox
debian
FreeBSD
Systemd
AppArmor
备案证书
域名绑定
8080端口