当前位置: 首页 > news >正文

服务器数据迁移

写在前面:为满足业务需求,我们采购了一台新的高性能服务器,现在想把旧服务器中的用户文件以及conda环境等迁移到新服务器中去。为了保证迁移过程尽可能不出错,并且迁移后新的服务器可以直接使用,以下方案提供一个稳健、可复用、最小出错概率的迁移方案,适用于:

  • ✅ 将用户的数据文件环境配置(zsh, conda等)分开迁移

  • ✅ 保留 .zshrc.oh-my-zsh/ 配置

  • ✅ 保留 ~/.cache/torch/hub/checkpoints/ 下的模型权重

  • ✅ 明确控制每类数据迁移的位置

迁移的内容可以这样分类:

类别路径内容示例是否需要迁移建议方式
数据类文件~/projects/, ~/data/代码、实验结果、文档独立打包或 rsync
Conda 环境~/miniconda3/ or ~/anaconda3/所有环境✅(“导出重建”方/conda-pack打包)环境导出 + 重建
环境配置文件~/.zshrc, ~/.bashrc, ~/.condarcshell配置、conda配置rsync 迁移即可
权重文件~/.cache/torch/hub/checkpoints/模型 .pth 文件rsync

一、用户文件和配置文件的迁移

✅ 1、迁移用户项目目录 1_project_documents/

把以下指令的username替换为真实的用户名称,newserver替换为新服务器的真实IP地址;

rsync -aP /home/username/1_project_documents/ username@newserver:/home/username/1_project_documents/

注意:

(1)/home/username/(末尾有 /):表示复制目录内部内容,而非整个文件夹层级;

(2)模拟执行测试:在不真正执行复制操作的情况下,模拟将旧服务器 /home/username/ 目录下的1_project_documents文件传输到新服务器 username@newserver/home/username/ 目录下,并显示会传输的文件列表。

rsync -aP --dry-run /home/username/.zshrc* username@newserver:/home/username/
组件含义
rsync用于远程同步文件和目录的工具
-a归档模式,保留所有权限、软链接、时间戳、用户组等
-P显示进度 + 支持断点续传(等同于 --progress --partial
--dry-run模拟执行,不实际复制文件,只显示会复制哪些文件

✅ 2、迁移 .cache/torch/ 模型缓存

rsync -aP /home/username/.cache/torch/ username@newserver:/home/username/.cache/torch/

✅ 3、迁移 .zshrc, .zshrc.*, .zsh_history

rsync -aP /home/username/.zshrc* username@newserver:/home/username/
rsync -aP /home/username/.zsh_history username@newserver:/home/username/

✅ 4、 迁移 .oh-my-zsh/ 插件主题目录

rsync -aP /home/zhanghejian/.oh-my-zsh/ user@newserver:/home/zhanghejian/.oh-my-zsh/

 注意:从旧服务器 rsync 迁移过来的文件,所属用户/用户组和你新服务器本地自己创建的文件不一致,执行以下指令,

sudo chown -R username:username /home/username
  • -R: 递归修改整个 home 目录下所有文件夹和文件;

  • username:username: 将 user 和 group 都设置为当前用户;

二、conda环境的迁移

✅ 1、首先,在新的服务器中安装与旧服务器相同版本的miniconda包
bash Miniconda3-latest-Linux-x86_64.sh
✅ 2、配置conda国内镜像(中科大)
channels:- https://mirrors.ustc.edu.cn/anaconda/cloud/pytorch/- https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/- https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/- https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/- https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/- https://mirrors.ustc.edu.cn/anaconda/pkgs/free/- https://mirrors.ustc.edu.cn/anaconda/pkgs/main/- https://repo.anaconda.com/pkgs/main- https://repo.anaconda.com/pkgs/r
show_channel_urls: true
✅ 3、旧服务器的conda环境进行打包

(1)在旧服务器中的base环境中安装conda-pack包;

conda activate base
conda install -c conda-forge conda-pack

(2)在 base 环境下打包目标环境,这里以catapro为例;

# -n catapro 表示打包名为 catapro 的环境, -o 参数指定打包路径和名称
conda-pack -n catapro -o catapro-packed.tar.gz

(3)将打包文件传到新服务器上;

scp catapro-packed.tar.gz username@newserver:/home/username/conda_envs_packed

(4)在新服务器上解压并修复环境;

# 创建在miniconda的envs目录下创建环境文件夹
mkdir -p ~/miniconda/envs/catapro# 解压(假设打包前环境名为 myenv)
tar -xzf catapro-packed.tar.gz -C ~/miniconda/envs/catapro# 进入新环境目录(根据打包时的名字)
cd ~/miniconda/envs/catapro# 修复路径
./bin/conda-unpack

注意:

1)conda-unpack的作用是:修复Conda环境中硬编码的原始路径,解决“路径失效”问题;

2)当你使用 conda-pack 打包一个环境时,它会记录原服务器上环境路径(比如 /home/username/miniconda3/envs/catapro),解压到新服务器时路径变了,很多包(特别是 .pth.so 文件)里的路径可能无法正确引用;

3)执行 ./bin/conda-unpack 该指令之后,它会:替换掉旧路径、重建软链接、清除缓存路径信息、修复 bin/python 等引用问题;

⚠️ 如果你不运行这步,环境激活可能会失败或行为异常

完成以上,基本上新的服务器就可以正常使用了,使用起来跟以前一样丝滑流畅!

http://www.xdnf.cn/news/673543.html

相关文章:

  • Windows逆向工程提升之IMAGE_TLS_DIRECTORY
  • 嵌入式学习 D29:系统编程--线程
  • AbMole| MGCD0103(M1790,Mocetinostat)
  • 深入解析Google多线程环境下的空间配置器——TCMalloc
  • 哈希算法及其在文件唯一性判定中的应用
  • [Vue]浅浅了解vue3响应式的基本原理
  • 【c++】exe找不到dll里的符号:error LNK2019: unresolved external symbol
  • (LeetCode 每日一题)2894. 分类求和并作差(数组、数学)
  • 优秘AI短视频数字人6月功能更新预告:新增多个AIGC热门功能,智能体和知识库再升级
  • 11.13 LangGraph记忆机制解析:构建生产级AI Agent的关键技术
  • MyBatis-Plus一站式增强组件MyBatis-Plus-kit(更新2.0版本):零Controller也能生成API?
  • 数据链路层
  • 动态规划(8):路径问题
  • cos和dmz学习
  • docker-compose搭建emqx 服务
  • 大学大模型教学:基于NC数据的全球气象可视化解决方案
  • 计算机组成原理:IEEE 754标准
  • 武汉火影数字VR大空间制作
  • Spring Cloud 详解:2025 最新技术与最佳实践
  • 第二章 1.4 数据采集安全风险防范之数据分类分级
  • vue + ant-design + xlsx 实现Excel自定义模板导入功能
  • 打卡day38
  • 基于vue框架的动物园饲养管理系统a7s60(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • SSM-IOC入门案例/DI入门案例
  • OpenHarmony平台驱动使用(四),GPIO
  • 08SpringBoot高级--自动化配置
  • 3D虚拟工厂
  • leetcode每日一题(好几天之前的) -- 3068.最大节点价值之和
  • 国产化Word处理控件Spire.Doc教程:在 C# 中打印 Word 文档终极指南
  • 李沐《动手学深度学习》 | 4.5-4.6 正则化技术:权重衰退与Dropout