在阿里云ECS实例上更换操作系统(即“重装系统”或“更换系统盘”)时,系统盘会被完全格式化并替换为新操作系统的镜像,因此所有存储在系统盘上的数据将被永久删除。为避免数据丢失,必须提前备份以下重要数据:
✅ 必须备份的核心数据(位于系统盘 / 或 /root、/home 等目录下):
-
网站及应用数据
- Web根目录(如
/var/www/html、/usr/share/nginx/html、/home/wwwroot) - 应用程序代码、配置文件(如
nginx.conf、apache2.conf、.htaccess) - CMS 数据(如 WordPress 的
wp-content目录,注意:数据库需单独备份,见下文)
- Web根目录(如
-
数据库文件与配置
- ❗数据库本身不直接存于系统盘的文件系统中(如 MySQL/PostgreSQL 数据通常在
/var/lib/mysql或/var/lib/postgresql),但该路径属于系统盘 → 必须导出备份!
✅ 正确做法:使用mysqldump/pg_dump导出 SQL 文件(而非直接拷贝数据目录,因重装后版本/权限可能不兼容)
🔹 示例:mysqldump -u root -p --all-databases > all_dbs_backup_$(date +%F).sql
- ❗数据库本身不直接存于系统盘的文件系统中(如 MySQL/PostgreSQL 数据通常在
-
用户账户与关键配置
/etc/passwd,/etc/shadow,/etc/group,/etc/sudoers(如需保留自定义用户和权限)- SSH 配置:
/etc/ssh/sshd_config、用户SSH密钥(~/.ssh/authorized_keys) - 主机名、网络配置(
/etc/hostname,/etc/hosts,/etc/sysconfig/network-scripts/ifcfg-*或/etc/netplan/*.yaml)
-
服务配置与自启动脚本
/etc/systemd/system/下自定义 service 文件/etc/init.d/脚本(传统SysV)- Crontab 任务:
crontab -l -u username > crontab_backup.txt - 自定义环境变量(
/etc/profile,~/.bashrc,~/.profile)
-
SSL/TLS 证书与私钥
- 通常位于
/etc/letsencrypt/、/usr/local/ssl/、/etc/ssl/等路径 - ⚠️ 私钥(如
privkey.pem)绝对不可丢失,且需严格保密
- 通常位于
-
日志与临时业务数据(若未分离到数据盘)
/var/log/中重要的审计日志、应用日志(如 Nginx access/error log 若需留存分析)/tmp和/var/tmp中的临时文件(如有未处理的上传、缓存等,请确认是否需保留)
✅ 强烈建议:区分系统盘与数据盘(最佳实践)
- ✅ 新建ECS时,务必挂载独立的云盘(高效云盘/SSD云盘)作为数据盘(如
/mnt/data或/data),并将以下内容迁移到数据盘:
▪ 网站内容(/data/www)
▪ 数据库数据目录(修改 MySQLdatadir指向/data/mysql)
▪ 对象存储/附件(如用户上传文件)
▪ 备份归档、监控数据等 - ✅ 这样更换系统盘时,数据盘不受影响,无需备份还原,大幅提升运维安全性和效率。
❌ 无需备份(系统重装后自动重建):
- 操作系统自带文件(
/bin,/usr,/lib等) - 已安装的软件包(重装后可重新
yum/apt install) - 内核、驱动等(由新镜像提供)
📌 额外重要提示:
- 🔐 备份前请确保数据一致性(例如:停止数据库写入或使用
--single-transaction参数) - 📦 将备份文件上传至 OSS(对象存储) 或 本地安全环境,勿仅存于同一台ECS上
- 🧪 重装后务必验证:SSH登录、服务启动、数据库连接、网站访问、SSL证书加载等
- 🔄 若使用“更换操作系统”功能(控制台或API),阿里云支持保留原系统盘为快照(勾选“创建快照”),可作为兜底恢复手段(但快照非实时备份,仍需主动备份关键数据)
如需,我可为你提供:
- 完整备份脚本(含数据库导出、配置打包、OSS上传)
- 数据盘挂载与MySQL迁移指南
- 重装后快速恢复清单(checklist)
欢迎随时告知你的具体环境(如:CentOS 7 + MySQL 5.7 + WordPress),我可以给出针对性方案。
云小栈