阅读量:0
Debian LNMP备份与恢复方法
一、备份方法
1. 数据库备份(MySQL/MariaDB)
数据库是网站数据的核心,需优先备份。推荐使用mysqldump(逻辑备份,兼容性强)或mysqlpump(MySQL 5.7+,支持并行备份)。
命令示例:
# 逻辑备份(生成SQL脚本,可跨版本恢复)
mysqldump -u [用户名] -p[密码] [数据库名] > /path/to/backup/[数据库名]_$(date +%Y%m%d).sql
# 示例:备份名为"mywebsite"的数据库
mysqldump -u root -pMySecretPassword mywebsite > /backups/mywebsite_$(date +%Y%m%d).sql
注意事项:
- 密码直接写在命令中可能存在安全风险,建议使用
-p(无空格)交互式输入,或通过配置文件(如~/.my.cnf)存储凭据; - 定期备份(如每天),并将备份文件存储在异地(如云存储)。
2. Nginx配置与网站文件备份
Nginx配置文件决定了服务器的网络行为,网站文件(HTML、CSS、JS、图片等)是用户访问的内容,均需完整备份。
命令示例:
# 备份Nginx配置文件(/etc/nginx目录)
sudo tar -czvf /backups/nginx_$(date +%Y%m%d).tar.gz /etc/nginx/
# 备份网站文件(默认路径/var/www/html)
sudo tar -czvf /backups/website_$(date +%Y%m%d).tar.gz /var/www/html/
注意事项:
- 备份前停止Nginx服务可避免文件损坏(可选):
sudo systemctl stop nginx && sudo tar -czvf /backups/nginx_$(date +%Y%m%d).tar.gz /etc/nginx/ && sudo systemctl start nginx - 若网站使用SSL证书,需额外备份
/etc/ssl/certs(证书)和/etc/ssl/private(私钥)目录。
3. PHP配置与代码备份
PHP配置文件影响脚本运行环境,网站代码(如WordPress、自定义应用)需同步备份。
命令示例:
# 备份PHP配置文件(以PHP 7.4为例,路径可能因版本调整)
sudo tar -czvf /backups/php_$(date +%Y%m%d).tar.gz /etc/php/7.4/fpm/pool.d/ /etc/php/7.4/fpm/php.ini
# 备份网站代码(若代码不在/var/www/html,调整路径)
sudo tar -czvf /backups/code_$(date +%Y%m%d).tar.gz /var/www/html/
注意事项:
- 若使用版本控制系统(如Git),可通过
git clone或git pull快速恢复代码; - 对于动态网站(如WordPress),需备份
wp-content目录(包含上传的文件、主题、插件)。
4. 自动化备份(Cron定时任务)
手动备份易遗漏,建议通过crontab设置定时任务。
操作步骤:
- 编辑当前用户的crontab:
sudo crontab -e - 添加定时任务(例如每天凌晨2点执行备份脚本):
0 2 * * * /bin/bash /path/to/backup_script.sh > /dev/null 2>&1 - 创建备份脚本(
/path/to/backup_script.sh):#!/bin/bash BACKUP_DIR="/backups" DATE=$(date +%Y%m%d) # 备份Nginx sudo tar -czvf "$BACKUP_DIR/nginx_$DATE.tar.gz" /etc/nginx/ # 备份网站文件 sudo tar -czvf "$BACKUP_DIR/website_$DATE.tar.gz" /var/www/html/ # 备份MySQL mysqldump -u root -pMySecretPassword mywebsite > "$BACKUP_DIR/mywebsite_$DATE.sql" # 删除7天前的备份(保留最近7天) find "$BACKUP_DIR" -name "*.tar.gz" -mtime +7 -delete find "$BACKUP_DIR" -name "*.sql" -mtime +7 -delete - 赋予脚本执行权限:
chmod +x /path/to/backup_script.sh
二、恢复方法
1. 数据库恢复(MySQL/MariaDB)
恢复前需确保目标数据库已存在(若不存在,先创建):
# 登录MySQL
mysql -u root -p
# 创建数据库(若不存在)
CREATE DATABASE mywebsite;
# 退出MySQL
exit
恢复命令:
# 将备份的SQL文件导入数据库
mysql -u [用户名] -p[密码] [数据库名] < /path/to/backup/[数据库名]_备份日期.sql
# 示例:恢复"mywebsite"数据库
mysql -u root -pMySecretPassword mywebsite < /backups/mywebsite_20250930.sql
注意事项:
- 恢复前停止相关服务(如Nginx、PHP-FPM)可避免数据冲突(可选);
- 若备份文件较大,可使用
pv工具监控进度。
2. Nginx配置与网站文件恢复
恢复命令:
# 恢复Nginx配置文件
sudo tar -xzvf /backups/nginx_备份日期.tar.gz -C /
# 恢复网站文件
sudo tar -xzvf /backups/website_备份日期.tar.gz -C /
后续操作:
- 检查Nginx配置语法:
sudo nginx -t - 重新加载Nginx:
sudo systemctl reload nginx
3. PHP配置与代码恢复
恢复命令:
# 恢复PHP配置文件(以PHP 7.4为例)
sudo tar -xzvf /backups/php_备份日期.tar.gz -C /
# 恢复网站代码
sudo tar -xzvf /backups/code_备份日期.tar.gz -C /
后续操作:
- 重启PHP-FPM服务:
sudo systemctl restart php7.4-fpm
4. 使用LNMP一键安装包恢复(可选)
若使用LNMP一键安装包(如Oneinstack),可通过其自带的备份/恢复功能简化操作:
- 进入LNMP安装目录(如
/usr/local/src/lnmp); - 执行恢复脚本(如
./restore.sh),按提示选择备份文件路径; - 脚本会自动恢复Nginx、MySQL、PHP及网站配置。
三、备份策略建议
- 3-2-1备份原则:
- 保留3份数据副本(原始数据+2份备份);
- 使用2种不同存储介质(如本地硬盘+云存储);
- 将1份备份存储在异地(防止本地灾难导致数据丢失)。
- 定期测试恢复:
- 每月至少测试1次备份文件的恢复过程,确保备份有效性;
- 检查备份文件的完整性(如解压后文件数量、大小是否符合预期)。
- 安全存储:
- 备份文件加密(如使用
gpg加密SQL文件); - 限制备份目录的访问权限(如
chmod 700 /backups)。
- 备份文件加密(如使用
以上就是关于“Debian LNMP备份与恢复方法”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm