ubuntu lamp备份恢复方法是什么
导读:Ubuntu LAMP 备份与恢复实操指南 一 备份范围与策略 备份范围建议覆盖:网站文件(如 /var/www/html 或站点根目录)、数据库(MySQL/MariaDB)、配置文件(Apache/PHP/虚拟主机)、以及可选的系统级...
Ubuntu LAMP 备份与恢复实操指南
一 备份范围与策略
- 备份范围建议覆盖:网站文件(如 /var/www/html 或站点根目录)、数据库(MySQL/MariaDB)、配置文件(Apache/PHP/虚拟主机)、以及可选的系统级快照(用于系统回滚)。
- 策略要点:设定备份频率(如每日/每周)、备份类型(完全/增量/差异)、多地点存储(本地+远程/云端)、保留周期与定期校验,并通过 cron 实现自动化。
- 工具选择:文件级用 tar/rsync,数据库用 mysqldump,系统快照用 Timeshift,远程传输可用 rsync/scp。以上做法能在保证一致性的同时兼顾效率与可恢复性。
二 快速上手 手动备份与恢复命令
- 数据库备份与恢复(MySQL/MariaDB)
- 备份单库:
mysqldump -u 用户名 -p 数据库名 > backup.sql
示例:mysqldump -u root -p mydb > /backup/mydb_$(date +%F).sql - 备份所有库:
mysqldump -u root -p --all-databases > /backup/all_databases_$(date +%F).sql - 恢复:
mysql -u 用户名 -p 数据库名 < backup.sql
如文件包含 CREATE DATABASE,可先登录 MySQL 执行 source /path/backup.sql;
- 备份单库:
- 网站文件备份与恢复
- 备份:
tar -czvf /backup/website_$(date +%F).tar.gz /var/www/html - 恢复:
tar -xzvf /backup/website_$(date +%F).tar.gz -C /var/www/html
- 备份:
- 配置文件备份与恢复
- 备份:
sudo cp -a /etc/apache2 /etc/php /backup/lamp_conf_$(date +%F) - 恢复:
sudo cp -a /backup/lamp_conf_$(date +%F)/apache2 /etc/
sudo cp -a /backup/lamp_conf_$(date +%F)/php /etc/
- 备份:
- 远程备份/恢复(示例)
- 备份到远端:
rsync -avz /backup/ user@remote:/backup/ - 从远端恢复:
rsync -avz user@remote:/backup/ /backup/
以上命令覆盖 LAMP 场景最常见、最可靠的手动备份与恢复路径,适合快速落地与小规模站点。
- 备份到远端:
三 自动化与系统级快照
- 定时备份脚本示例(/usr/local/bin/backup_lamp.sh)
加入定时任务(crontab -e):#!/usr/bin/env bash BACKUP_DIR="/backup/$(date +%F)" mkdir -p "$BACKUP_DIR" # 数据库 mysqldump -u root -p'YOUR_DB_PASS' --single-transaction --routines --triggers --databases db1 db2 > "$BACKUP_DIR/db_$(date +%F).sql" # 网站文件 tar -czf "$BACKUP_DIR/www_$(date +%F).tar.gz" -C /var/www/html . # 配置文件 tar -czf "$BACKUP_DIR/conf_$(date +%F).tar.gz" -C /etc/apache2 . /etc/php # 保留最近7天 find /backup -maxdepth 1 -type d -mtime +7 -delete
0 2 * * * /usr/local/bin/backup_lamp.sh > /var/log/backup_lamp.log 2> & 1 - 系统级快照(Timeshift)
- 安装:sudo apt update & & sudo apt install timeshift
- 使用:图形界面选择 RSYNC 或 Btrfs(若使用 Btrfs),备份位置建议选非系统盘;可按每日/每周等策略保留多个快照,便于系统回滚。
自动化与快照能在系统升级、误删配置或软件冲突时提供快速回退能力。
四 迁移到新服务器步骤
- 准备:在新机器安装同版本的 Ubuntu LAMP,创建同名数据库与数据库用户并授予权限。
- 传输:用 rsync/scp 将网站文件与备份的 SQL 文件复制到新服务器。
- 导入:在新服务器上恢复数据库(mysql -u 用户名 -p 数据库名 < backup.sql)。
- 配置:调整站点根目录、虚拟主机配置、.env 或配置文件中的数据库连接信息(主机、库名、用户、密码)。
- 权限与测试:设置 www-data 对网站目录的属主/权限,重启 Apache 后访问站点与后台进行功能验证。
该流程适用于同版本迁移;跨大版本或跨发行版时,建议先在测试环境验证兼容性与配置差异。
五 高级恢复与时间点恢复
- 时间点恢复(基于二进制日志 binlog,适用于 InnoDB 等)
- 备份时建议加锁并滚动 binlog,便于后续增量恢复:
mysqldump -u root -p --single-transaction --routines --triggers --databases db1 > backup.sql
mysql -e “FLUSH LOGS; ”
记录当前 binlog 文件与位置(SHOW MASTER STATUS; )。 - 恢复顺序:先恢复全量备份(mysql <
backup.sql),再按时间点重放后续 binlog:
mysqlbinlog --start-position=POS --stop-datetime=“YYYY-MM-DD HH:MM:SS” /var/lib/mysql/mysql-bin.00000X | mysql -u root -p
该方法可在误删表或误操作后,将库恢复到指定时刻。
- 备份时建议加锁并滚动 binlog,便于后续增量恢复:
- 故障与数据恢复提示
- 发生数据丢失时,优先停止写入,确认磁盘状态,再使用专业工具(如 Testdisk/Photorec/Foremost/Extundelete)进行扫描与恢复;切勿在故障盘上继续写入。
- 最佳实践清单
- 定期测试恢复流程与备份完整性;
- 备份文件加密与异地存放;
- 结合完全备份+增量备份与多地点策略;
- 重要操作前先做一次快照/备份。
以上做法可显著提升关键业务的可用性与可恢复性。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu lamp备份恢复方法是什么
本文地址: https://pptw.com/jishu/787117.html
