centos lnmp备份恢复方案
导读:CentOS LNMP备份恢复方案 一、备份前准备 确认组件路径:提前记录LNMP各组件的关键路径(如Nginx配置文件/etc/nginx、网站文件/var/www/html、MySQL数据目录/var/lib/mysql),避免备份时...
CentOS LNMP备份恢复方案
一、备份前准备
- 确认组件路径:提前记录LNMP各组件的关键路径(如Nginx配置文件
/etc/nginx
、网站文件/var/www/html
、MySQL数据目录/var/lib/mysql
),避免备份时遗漏。 - 评估数据重要性:根据数据价值确定备份频率(如每日增量、每周全量)和存储介质(本地磁盘、远程FTP、云存储)。
- 测试存储目标:确保备份目标路径(如远程FTP、云存储桶)可正常写入,避免备份失败。
二、手动备份步骤(单次执行)
1. Nginx配置文件备份
sudo cp -r /etc/nginx /backup/nginx_$(date +%F) # 复制配置目录到备份文件夹,文件名包含日期
说明:备份Nginx主配置文件及站点配置,后续恢复需检查语法。
2. MySQL数据库备份
# 备份所有数据库(包含结构和数据)
sudo mysqldump -u root -p --all-databases --single-transaction --quick --lock-tables=false >
/backup/mysql_all_$(date +%F).sql
# 备份单个数据库(如需指定)
sudo mysqldump -u root -p 数据库名 >
/backup/dbname_$(date +%F).sql
参数说明:--single-transaction
确保InnoDB数据一致性(无需锁表);--quick
逐行导出,减少内存占用。
3. PHP项目文件备份
# 备份网站根目录(如/var/www/html)
sudo tar -czvf /backup/www_$(date +%F).tar.gz /var/www/html/
# 备份PHP配置文件(如php.ini)
sudo cp /etc/php.ini /backup/php_ini_$(date +%F)
说明:压缩打包减少存储空间,保留文件权限(-z
选项)。
三、自动备份配置(长期运行)
1. 使用LNMP自带备份脚本
LNMP一键安装包通常包含backup.sh
脚本(路径如/root/lnmp1.6/tools/backup.sh
),修改脚本中的备份参数:
# 编辑脚本(示例:设置备份目录、保留天数)
vim /root/lnmp1.6/tools/backup.sh
# 修改以下参数(根据实际需求调整)
BACKUP_DIR="/backup" # 备份存储路径
MYSQL_USER="root" # MySQL用户名
MYSQL_PASS="yourpassword" # MySQL密码(建议使用配置文件存储,避免明文)
KEEP_DAYS=7 # 保留最近7天备份
设置定时任务:通过crontab -e
添加每日凌晨3点执行:
0 3 * * * /bin/bash /root/lnmp1.6/tools/backup.sh >
>
/var/log/lnmp_backup.log 2>
&
1
说明:脚本会自动备份MySQL、Nginx配置、网站文件,并清理过期备份。
2. rsync增量备份(可选)
若需减少带宽占用,可使用rsync
同步变化文件(如网站文件):
# 本地增量备份(示例:同步/var/www/html到/backup/www_incremental)
sudo rsync -avz --delete /var/www/html/ /backup/www_incremental/
# 远程增量备份(示例:同步到远程服务器192.168.1.100)
sudo rsync -avz -e ssh /var/www/html/ user@192.168.1.100:/remote/backup/www/
说明:--delete
选项删除目标端多余文件,保持与源端一致;远程备份需配置SSH免密登录。
四、恢复流程(故障场景)
1. Nginx配置恢复
# 停止Nginx服务(避免配置冲突)
sudo systemctl stop nginx
# 覆盖备份的配置文件
sudo cp -r /backup/nginx_2025-10-01/* /etc/nginx/
# 检查配置语法(关键步骤,避免重启失败)
sudo nginx -t
# 启动Nginx
sudo systemctl start nginx
注意:若nginx -t
报错,需修改配置文件后再重启。
2. MySQL数据库恢复
# 登录MySQL(确认数据库是否存在)
mysql -u root -p -e "SHOW DATABASES;
"
# 恢复全量备份(如备份文件为mysql_all_2025-10-01.sql)
mysql -u root -p <
/backup/mysql_all_2025-10-01.sql
# 恢复单个数据库(需先创建数据库)
mysql -u root -p -e "CREATE DATABASE dbname;
"
mysql -u root -p dbname <
/backup/dbname_2025-10-01.sql
说明:恢复前需确保目标数据库不存在(全量恢复),避免数据冲突。
3. PHP项目文件恢复
# 删除原网站文件(谨慎操作,确认备份无误)
sudo rm -rf /var/www/html/*
# 解压备份的网站文件
sudo tar -xzvf /backup/www_2025-10-01.tar.gz -C /var/www/html/
# 设置正确权限(避免Web访问问题)
sudo chown -R nginx:nginx /var/www/html/ # 假设Nginx运行用户为nginx
sudo chmod -R 755 /var/www/html/
说明:权限设置需匹配Web服务器用户(如nginx
或apache
)。
五、注意事项
- 备份验证:定期测试备份文件的恢复流程(如每月一次),确保备份未损坏。
- 存储安全:备份文件存储在异地(如云存储)或加密介质(如加密U盘),避免单点故障。
- 权限管理:备份和恢复操作需由root用户或具有相应权限的用户执行,避免权限不足导致失败。
- 日志监控:记录备份任务的执行日志(如
/var/log/lnmp_backup.log
),及时发现备份失败问题。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos lnmp备份恢复方案
本文地址: https://pptw.com/jishu/723221.html