阿里云 ECS 快照通过自定义镜像安全取回历史服务器代码
阿里云 ECS 通过自定义镜像安全取回历史服务器代码一、背景有时候我们需要从阿里云 ECS 的历史快照或镜像中取回之前的项目代码但又不能影响当前正在运行的服务器。本次采用的方式是先从快照或实例创建自定义镜像再通过该镜像创建一台新的按量付费 ECS登录新服务器后打包代码并下载到本地。这种方式不会覆盖当前实例也不会回滚当前云盘适合用于安全恢复历史代码。二、重要注意事项操作前一定要注意不要在当前生产服务器上执行“回滚云盘”不要执行“更换系统盘”不要执行“重装系统”不要把恢复出来的代码直接覆盖线上目录新建出来的 ECS 用完后及时释放避免继续扣费不要在博客、截图或命令中暴露公网 IP、root 密码、密钥等敏感信息三、创建自定义镜像进入阿里云控制台云服务器 ECS - 镜像 - 自定义镜像 如果是从快照创建 云服务器 ECS - 存储与快照 - 快照 选择目标系统盘快照然后点击 创建自定义镜像 填写镜像名称例如 recover-code-日期 等待镜像状态变为 可用 四、通过自定义镜像创建新的 ECS 在自定义镜像列表中找到刚创建好的镜像点击 创建实例 配置建议如下 付费类型按量付费 地域与镜像保持一致 实例规格2核 4G 或按需选择 系统盘保持镜像默认容量 公网 IP按需分配 带宽计费按使用流量 安全组放行 22 端口 登录方式自定义密码或 SSH 密钥 这里创建的是一台全新的临时 ECS不会影响原来的服务器。 五、登录新服务器 创建完成后在 ECS 实例列表中找到新服务器复制公网 IP。 本地终端执行 ssh root你的新服务器公网IP 如果使用的是密码登录输入创建实例时设置的 root 密码即可。 六、找到历史代码目录 常见的网站代码目录有 /www/wwwroot /var/www /home /data /opt 如果之前使用的是宝塔面板通常代码目录在 /www/wwwroot/项目目录 可以执行 ls /www/wwwroot 确认项目目录是否存在。 七、打包代码 假设项目目录为 /www/wwwroot/example.com 执行以下命令打包 cd /www/wwwroot tar -czf /root/example.com.tar.gz example.com 查看压缩包是否生成成功 ls -lh /root/example.com.tar.gz 如果能看到文件大小说明打包成功。 八、下载到本地电脑 在自己电脑的 PowerShell 或终端中执行 scp root你的新服务器公网IP:/root/example.com.tar.gz 本地下载目录 Windows 示例 scp root你的新服务器公网IP:/root/example.com.tar.gz $env:USERPROFILE\Downloads\ 首次连接时如果提示 Are you sure you want to continue connecting? 输入 yes 然后输入 root 密码即可。 下载完成后可以在本地下载目录中看到 example.com.tar.gz