这次迁移的主要任务是将一个运行 MCSManager 的服务器从一台 Debian 服务器迁移到另一台新的 Debian 服务器,具体涉及以下内容:
也对新服务器进行了优化配置,包括安装 1Panel 面板、设置 Zsh 终端以及引入插件管理器 Zinit。
这次迁移不仅是一次基础环境的复制,更是一次技术堆栈的迭代~
在迁移过程中,我最初尝试使用 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 是一款现代化的开源 Linux 运维管理面板,旨在通过简化操作提高服务器管理效率。它具有以下主要优势:
安装 1Panel 的过程十分简单,使用以下命令即可完成:
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && bash quick_start.sh
这些的迁移都特别的简单,无非就是一个一个用rsync传输/opt/1panel/apps里面的内容
如果实在太懒,建议直接/opt/1panel迁移整个目录过去,实测可行(
如果你对其中一个迁移感兴趣请留言吧,或许我会再出一篇文章呢
在为新服务器配置终端时,我选择了 Zinit 作为 Zsh 的插件管理器,而没有使用常见的 Oh My Zsh。原因在于 Zinit 的轻量化和高性能。相比 Oh My Zsh,Zinit 的插件加载速度更快,不会影响终端的启动时间。
Zinit 可以理解为 Zsh 的 "vim-plug",而 Oh My Zsh 则更像是一个完整的框架(类似 SpaceVim)。这种轻量化的特性让我可以根据需要灵活定制终端环境,而不必引入额外的冗余功能。
首先,我使用以下命令安装了 Zsh:
apt install zsh
接着,我运行以下命令安装 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
zsh-users/zsh-completions:
扩展 Zsh 的自动补全功能,支持对常用工具(如 git、docker)的高级补全,提升输入效率。
zsh-users/zsh-autosuggestions:
提供实时命令建议,基于历史记录和上下文自动补全,减少重复输入。
zsh-users/zsh-history-substring-search:
支持通过子字符串快速搜索历史命令,结合键绑定功能让历史查询更加便捷。
zdharma-continuum/fast-syntax-highlighting:
实现命令语法高亮功能,错误命令会标红,正确命令标绿,帮助快速定位输入错误。
romkatv/powerlevel10k:
一款高性能的终端主题,提供丰富的视觉效果和信息展示(如 Git 状态、网络状态等),并且加载速度极快。
OMZ::lib/completion.zsh:
加强 Zsh 自动补全功能,与 zsh-completions 共同工作。
OMZ::lib/history.zsh:
优化 Zsh 历史记录的管理,支持持久化和快速调用。
OMZ::lib/key-bindings.zsh:
提供更直观的按键绑定功能,增强终端交互。
OMZ::lib/theme-and-appearance.zsh:
控制 Zsh 的主题和外观设置,与 Powerlevel10k 搭配效果最佳。
djui/alias-tips:
提供别名提示功能,例如在输入 git status 时,会提示已定义的别名(如 gst)。
在迁移完成后,我还尝试安装了 x-cmd 工具。它是一款采用 POSIX Shell 编写的轻量级工具,具有以下特点:
安装 x-cmd 的命令如下:
eval "$(curl https://get.x-cmd.com)"
x-cmd 的包管理功能让我可以轻松安装一些独立工具,而不必依赖系统级包管理器什么什么的,好用就对了!
此文由 Mix Space 同步更新至 xLog
原始链接为 https://ling.crashvibe.cn/posts/default/server-migration-with-rsync-and-zsh