今回の移行の主なタスクは、MCSManager を実行しているサーバーを 1 台の Debian サーバーから別の新しい Debian サーバーに移行することで、具体的には以下の内容が含まれます:
- Minecraft サーバー:3 つのサーバーが含まれます:
- 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
これらの移行は特に簡単で、/opt/1panel/apps 内の内容を一つずつ rsync で転送するだけです。
もし本当に面倒であれば、/opt/1panel のディレクトリ全体をそのまま移行することをお勧めします。実測可能です(
もしその中の一つの移行に興味があれば、コメントしてください。もしかしたら、もう一つ記事を書くかもしれません。
Zsh ターミナルの設定#
なぜ Zinit なのか#
新しいサーバーのターミナルを設定する際、一般的な Oh My Zsh を使用せずに Zinit を 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
プラグイン機能の詳細#
-
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 ツールのインストール#
x-cmd について#
移行が完了した後、x-cmd ツールのインストールも試みました。これは POSIX シェルで書かれた軽量ツールで、以下の特徴があります:
- root 権限不要:独自のパッケージマネージャーを搭載しており、スーパーユーザー権限なしで実行できます。
- モジュール化設計:コードがモジュール(mod)形式で整理されており、柔軟性が高いです。
- すぐに使える:インストールが簡単で、さまざまな運用シーンで使用できます。
インストール手順#
x-cmd のインストールコマンドは以下の通りです:
eval "$(curl https://get.x-cmd.com)"
x-cmd のパッケージ管理機能により、独立したツールを簡単にインストールでき、システムレベルのパッケージマネージャーに依存する必要がなく、使いやすいです!
この記事は Mix Space によって xLog に同期更新されました。元のリンクは https://mixspace.crashvibe.cn/posts/default/server-migration-with-rsync-and-zsh