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


載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。