banner
wling

wling

bilibili

服务器迁移记录:从 Debian 到 Debian 的一次迁移工作

这次迁移的主要任务是将一个运行 MCSManager 的服务器从一台 Debian 服务器迁移到另一台新的 Debian 服务器,具体涉及以下内容:

  • Minecraft 服务器:包括三个服务端:
    • Velocity 代理服务端
    • Purpur 登录服
    • Leaves 生存服
  • 机器人服务
    • 基于 Nonebot / Koishi 框架、使用 OneBot v11 协议的机器人
    • 使用官方 QQ 接口的机器人

也对新服务器进行了优化配置,包括安装 1Panel 面板、设置 Zsh 终端以及引入插件管理器 Zinit。

这次迁移不仅是一次基础环境的复制,更是一次技术堆栈的迭代~


数据迁移#

使用 rsync 提高传输效率#

在迁移过程中,我最初尝试使用 scp 进行数据传输,但发现传输速度不够理想。因此,我改用 rsync,它支持增量同步并显示传输进度,同时在传输效率和灵活性上表现更佳。

执行的完整命令如下:

rsync -avz --progress --exclude="Config/" ***@192.168.*.*:/opt/mcsmanager/daemon/data/ /opt/mcsmanager/daemon/data/
  • -a:归档模式,保留文件权限、时间戳等元数据。
  • -v:显示详细输出。
  • -z:压缩数据传输。
  • --progress:显示传输进度。
  • --exclude="Config/":排除特定目录。

通过这条命令,我实现从旧服务器到新服务器的数据同步,整个过程稳定、高效。此外,rsync 的增量更新特性非常适合需要多次调试迁移的场景,可以显著减少重复数据的传输时间。


1Panel 的安装与使用#

什么是 1Panel#

1Panel 是一款现代化的开源 Linux 运维管理面板,旨在通过简化操作提高服务器管理效率。它具有以下主要优势:

  • 高效管理:通过 Web 图形界面实现主机监控、文件管理、数据库管理等功能。
  • 快速建站:深度集成开源建站工具,如 WordPress 和 Halo,支持一键域名绑定和 SSL 配置。
  • 应用商店:提供丰富的高质量开源工具和应用软件,用户可以快速安装并升级。
  • 安全可靠:内置防火墙、日志审计功能,提升系统安全性,同时采用容器技术减少漏洞暴露。
  • 一键备份:支持备份至本地或云端,轻松实现数据安全保障。

安装步骤#

安装 1Panel 的过程十分简单,使用以下命令即可完成:

curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && bash quick_start.sh

迁移#

  • MariaDB
  • phpMyAdmin
  • Koishi
  • Qinglong
  • DDNS-Go
  • Uptime-Kuma
  • Alist
  • Redis

这些的迁移都特别的简单,无非就是一个一个用 rsync 传输 /opt/1panel/apps 里面的内容

如果实在太懒,建议直接 /opt/1panel 迁移整个目录过去,实测可行(

如果你对其中一个迁移感兴趣请留言吧,或许我会再出一篇文章呢


Zsh 终端的配置#

为什么是 Zinit#

在为新服务器配置终端时,我选择了 Zinit 作为 Zsh 的插件管理器,而没有使用常见的 Oh My Zsh。原因在于 Zinit 的轻量化和高性能。相比 Oh My Zsh,Zinit 的插件加载速度更快,不会影响终端的启动时间。

Zinit 可以理解为 Zsh 的 "vim-plug",而 Oh My Zsh 则更像是一个完整的框架(类似 SpaceVim)。这种轻量化的特性让我可以根据需要灵活定制终端环境,而不必引入额外的冗余功能。

安装 Zsh#

首先,我使用以下命令安装了 Zsh:

apt install zsh

安装 Zinit#

接着,我运行以下命令安装 Zinit:

bash -c "$(curl --fail --show-error --silent --location https://raw.githubusercontent.com/zdharma-continuum/zinit/HEAD/scripts/install.sh)"

安装完成后,我在 .zshrc 文件中添加了如下配置,以加载常用插件(直接加!会自动下载的):

# zsh 套件四天王
zinit light zsh-users/zsh-completions
zinit light zsh-users/zsh-autosuggestions
zinit light zsh-users/zsh-history-substring-search
zinit light zdharma-continuum/fast-syntax-highlighting
zinit light romkatv/powerlevel10k

# Oh My Zsh 功能
zinit snippet OMZ::lib/completion.zsh
zinit snippet OMZ::lib/history.zsh
zinit snippet OMZ::lib/key-bindings.zsh
zinit snippet OMZ::lib/theme-and-appearance.zsh

# key binding
bindkey '^[[A' history-substring-search-up
bindkey '^[[B' history-substring-search-down
bindkey ',' autosuggest-accept

# 其他
zinit load djui/alias-tips

插件功能详解#

  1. zsh-users/zsh-completions
    扩展 Zsh 的自动补全功能,支持对常用工具(如 gitdocker)的高级补全,提升输入效率。

  2. zsh-users/zsh-autosuggestions
    提供实时命令建议,基于历史记录和上下文自动补全,减少重复输入。

  3. zsh-users/zsh-history-substring-search
    支持通过子字符串快速搜索历史命令,结合键绑定功能让历史查询更加便捷。

  4. zdharma-continuum/fast-syntax-highlighting
    实现命令语法高亮功能,错误命令会标红,正确命令标绿,帮助快速定位输入错误。

  5. romkatv/powerlevel10k
    一款高性能的终端主题,提供丰富的视觉效果和信息展示(如 Git 状态、网络状态等),并且加载速度极快。

  6. OMZ::lib/completion.zsh
    加强 Zsh 自动补全功能,与 zsh-completions 共同工作。

  7. OMZ::lib/history.zsh
    优化 Zsh 历史记录的管理,支持持久化和快速调用。

  8. OMZ::lib/key-bindings.zsh
    提供更直观的按键绑定功能,增强终端交互。

  9. OMZ::lib/theme-and-appearance.zsh
    控制 Zsh 的主题和外观设置,与 Powerlevel10k 搭配效果最佳。

  10. djui/alias-tips
    提供别名提示功能,例如在输入 git status 时,会提示已定义的别名(如 gst)。


安装 x-cmd 工具#

x-cmd 简介#

在迁移完成后,我还尝试安装了 x-cmd 工具。它是一款采用 POSIX Shell 编写的轻量级工具,具有以下特点:

  • 无需 root 权限:自带包管理器,无需超级用户权限即可运行。
  • 模块化设计:代码以模块(mod)方式组织,灵活性高。
  • 开箱即用:安装简单,即可用于多种运维场景。

安装步骤#

安装 x-cmd 的命令如下:

eval "$(curl https://get.x-cmd.com)"

x-cmd 的包管理功能让我可以轻松安装一些独立工具,而不必依赖系统级包管理器什么什么的,好用就对了!

此文由 Mix Space 同步更新至 xLog
原始链接为 https://ling.tblstudio.cn/posts/default/server-migration-with-rsync-and-zsh


加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。