切换云服务器的Linux发行版(如CentOS换Ubuntu)相当于重装系统,因此需要全面备份。以下是需要手动备份的关键内容清单:
一、系统配置与密钥
-
SSH密钥与配置
~/.ssh/目录(包括id_rsa、id_rsa.pub、authorized_keys、known_hosts)/etc/ssh/sshd_config(自定义SSH配置)
-
系统网络配置
/etc/netplan/(Ubuntu)或/etc/sysconfig/network-scripts/(CentOS)- 防火墙规则:
iptables-save或firewall-cmd --list-all(CentOS)/ufw status(Ubuntu)
-
服务配置文件
- Web服务器:Nginx(
/etc/nginx/)、Apache(/etc/httpd/或/etc/apache2/) - 数据库:MySQL(
/etc/my.cnf)、PostgreSQL(/etc/postgresql/) - 其他服务:如DNS、XX、监控工具等
- Web服务器:Nginx(
二、应用数据与数据库
-
网站/应用代码
- Web根目录(如
/var/www/、/home/user/app/) - 环境配置文件(如
.env、config.php)
- Web根目录(如
-
数据库备份
- MySQL/MariaDB:
mysqldump -u root -p --all-databases > alldb.sql - PostgreSQL:
pg_dumpall -U postgres > alldb.sql - MongoDB:
mongodump --out /backup/mongodb/
- MySQL/MariaDB:
-
文件存储
- 用户上传的文件(如图片、文档)
- 日志文件(如需保留):
/var/log/中的重要日志
三、用户与权限
-
用户数据
- 用户家目录(
/home/下的重要数据) - 自定义脚本:
/usr/local/bin/、/opt/中的工具
- 用户家目录(
-
权限与计划任务
/etc/passwd、/etc/group(如需保留用户信息)/etc/sudoers(自定义sudo配置)- 定时任务:
crontab -l导出所有用户的计划任务
四、证书与安全配置
-
SSL/TLS证书
- Let’s Encrypt:备份
/etc/letsencrypt/目录 - 自定义证书:
/etc/ssl/或/etc/pki/
- Let’s Encrypt:备份
-
安全工具配置
- Fail2ban:
/etc/fail2ban/ - SELinux/AppArmor策略(如有自定义规则)
- Fail2ban:
五、备份操作建议
-
本地+远程双重备份
- 将备份文件保存到本地后,上传至对象存储(如AWS S3、OSS) 或另一台服务器。
-
验证备份完整性
- 检查数据库备份是否可恢复:
mysql -u root -p < test.sql - 对比关键文件的MD5哈希值。
- 检查数据库备份是否可恢复:
-
记录当前环境
- 运行
dpkg -l(Ubuntu)或rpm -qa(CentOS)记录已安装的软件包。 - 记录内核版本:
uname -r。
- 运行
六、切换后恢复步骤
-
新系统初始化
- 安装必要软件(如SSH、Web服务器、数据库)。
- 恢复用户和权限配置。
-
数据恢复顺序
- 先恢复数据库,再恢复应用代码,最后恢复配置文件。
- 逐步重启服务并测试功能。
注意事项
- 云服务器特殊配置:检查云平台控制台中的安全组、弹性IP、磁盘挂载等配置是否需调整。
- 服务依赖:Ubuntu和CentOS的软件包名称、配置文件路径可能不同(如Nginx的默认路径)。
- 内核兼容性:部分驱动(如云厂商的虚拟化驱动)可能需要重新安装。
建议在操作前创建云服务器快照,并先在测试环境演练恢复流程,确保万无一失。
CLOUD技术笔记