服务器数据迁移

news2025/5/29 12:19:33

写在前面:为满足业务需求,我们采购了一台新的高性能服务器,现在想把旧服务器中的用户文件以及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.coloradmin.cn/o/2387321.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

商用密码 vs 普通密码:安全加密的核心区别

商用密码 vs 普通密码:安全加密的核心区别 一. 引言:密码的世界二. 什么是普通密码?三. 什么是商用密码?四. 普通密码 vs 商用密码:核心区别五. 选择合适的密码方案六. 结语 前言 肝文不易,点个免费的赞和…

MYSQL中的分库分表及产生的分布式问题

分库分表是分布式数据库架构中常用的优化手段,用于解决单库单表数据量过大、性能瓶颈等问题。其核心思想是将数据分散到多个数据库(分库)或多个表(分表)中,以提升系统的吞吐量、查询性能和可扩展性。 一&am…

投影机三色光源和单色光源实拍对比:一场视觉体验的终极较量

一、光源技术:从 “单色模拟” 到 “三色原生” 的进化 (一)单色光源:白光的 “色彩魔术” 单色光源投影机采用单一白光作为基础光源,通过LCD上出现色彩呈现颜色。这种技术路线的优势在于成本可控,早期被广…

电子电气架构 --- 下一代汽车电子电气架构中的连接性

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。 生活中有两种人,一种人格外在意别人的眼光;另一种人无论…

手写Tomcat(一)

一、Tomcat简介 Tomcat 服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。 1.1 Tomcat基本架构 Servlet接口文件中定义的方法有以下…

【机器学习基础】机器学习入门核心算法:支持向量机(SVM)

机器学习入门核心算法:支持向量机(SVM) 一、算法逻辑1.1 基本概念1.2 核心思想线性可分情况 二、算法原理与数学推导2.1 原始优化问题2.2 拉格朗日对偶2.3 对偶问题2.4 核函数技巧2.5 软间隔与松弛变量 三、模型评估3.1 评估指标3.2 交叉验证…

定时清理流媒体服务器录像自动化bash脚本

定时清理流媒体服务器保存录像文件夹 首先创建一个文件,解除读写权限 touch rm_videos.sh chmod 777 rm_videos.sh将内容复制进去,将对应文件夹等需要修改的内容,根据自己的实际需求进行修改 #!/bin/bash# 设置目标目录(修改为你的实际路…

Logi鼠标切换桌面失效

Mac上习惯了滑屏切换桌面,所以Logi鼠标也定制了切换桌面的动作,有一天发现这个动作失效了,且只有切换桌面的动作失效。 发现Logi Options出现了这个提示,如图所示(具体原因未知,已配置不自动更新版本&…

2025年全国青少年信息素养大赛复赛C++集训(15):因子问题(题目及解析)

2025年全国青少年信息素养大赛复赛C集训(15):因子问题(题目及解析) 题目描述 任给两个正整数N、M,求一个最小的正整数a,使得a和(M-a)都是N的因子。 时间限制:10000 内存限制&…

Vue3进阶教程:1.初次了解vue

1.初次了解vue vue文件目录和各个文件在这里不做介绍 此课程对针对有点vue基础的同学,或者看过我上部分vue的教程 与之前我的Vue教程不同的是,写法和内容有区别 真正的了解Vue3 1.创建vue组件 1.npm create vuelatest 2.取名 3.TS要选上 4.其他先不选 5…

WordPress免费网站模板下载

大背景图免费wordpress建站模板 这个wordpress模板设计以简约和专业为主题,旨在为用户提供清晰、直观的浏览体验。以下是对其风格、布局和设计理念的详细介绍: 风格 简约现代:整体设计采用简约风格,使用了大量的白色和灰色调&am…

【深度学习新浪潮】以图搜地点是如何实现的?(含大模型方案)

1. 以图搜地点的实现方式有哪些? 扫描手机照片中的截图并识别出位置信息,主要有以下几种实现方式: 通过照片元数据获取: 原理:现代智能手机拍摄的照片通常会包含Exif(Exchangeable Image File)元数据。Exif中除了有像素信息之外,还包含了光圈、快门、白平衡、ISO、焦距…

element的el-table翻页选中功能

el-table翻页选中功能 row-key"enterpriseWorkerId" selection-change"handleSelectionChange"<el-table-column type"selection" :reserve-selection"true" width"55"></el-table-column>stuMultipleList: []…

Python打卡训练营学习记录Day38

知识点回顾&#xff1a; Dataset类的__getitem__和__len__方法&#xff08;本质是python的特殊方法&#xff09;Dataloader类minist手写数据集的了解 作业&#xff1a;了解下cifar数据集&#xff0c;尝试获取其中一张图片 import torch import torch.nn as nn import torch.opt…

deepseek开源资料汇总

参考&#xff1a;DeepSeek“开源周”收官&#xff0c;连续五天到底都发布了什么? 目录 一、首日开源-FlashMLA 二、Day2 DeepEP 三、Day3 DeepGEMM 四、Day4 DualPipe & EPLB 五、Day5 3FS & Smallpond 总结 一、首日开源-FlashMLA 多头部潜在注意力机制&#x…

Linux编辑器——vim的使用

vim是一款多模式的编辑器。 基本操作&#xff1a;vim打开默认是命令模式&#xff0c;也就是输入命令然后系统执行指令&#xff0c;想要写代码&#xff0c;只需输入字母i&#xff0c;就进入插入模式&#xff0c;写完代码想要退出&#xff0c;按一下Esc&#xff0c;退回到命令模…

线性回归原理推导与应用(八):逻辑回归二分类乳腺癌数据分类

乳腺癌数据是sklearn中自带的数据集&#xff0c;需要通过相关特征对是否患有乳腺癌进行分类。 数据清洗与建模 首先加载相关库和相关数据 from sklearn.datasets import load_breast_cancer from sklearn.linear_model import LogisticRegression import numpy as np import…

Jenkins分配对应项目权限与用户管理

在日常开发过程中经常会出现用户和权限管理问题&#xff0c;没有配置trigger时&#xff0c;通常需要我们手动构建&#xff0c;但此时前端和后端的朋友没有build权限&#xff0c;导致每次dev环境测试都需要麻烦我们手动去构建&#xff0c;消息传达不及时则会降低开发效率。 现有…

Mate桌面环境系统与终端模拟器参数配置

说明&#xff1a;   MATE桌面环境在使用中会优化一些参数配置&#xff0c;例如&#xff1a;电源选项、屏幕配置、字体配置、终端模拟器&#xff08;Mate Terminal&#xff09;配置等等。   通常工程师会根据自己喜好调整一些参数&#xff0c;修改后参数的保存位置在/home/u…

fabric 是一个开源框架,用于使用 AI 增强人类能力。它提供了一个模块化框架,用于使用一组可在任何地方使用的众包人工智能提示来解决特定问题

​一、软件介绍 文末提供程序和源码下载 fabric 是一个开源框架&#xff0c;用于使用 AI 增强人类能力。它提供了一个模块化框架&#xff0c;用于使用一组可在任何地方使用的众包人工智能提示来解决特定问题。 二、What and why 什么和为什么 自 2023 年初和 GenAI 以来&…