マイクラサーバー 半自動アップデート対応のお知らせ

aoiSakura
#葵f鯖
葵っちオリジナルブランド v0pal(バレパル)が運用する「マインクラフトサーバー ƒ鯖」につきまして、一部自動アップデートに対応しましたことをご報告いたします。
Minecraft公式が公開しているBedrockサーバーダウンロードにてダウンロードした圧縮ファイルをWindowsServer内の指定場所に設置し、スクリプトを実行することによって自動アップデートを実現しました。
ファイル制御はPowerShell7スクリプトで作成しています。
スクリプトの実行内容は以下の通りです。
- 設置したファイルの確認
1件のbedrock-server-[バージョン].zipが存在することGet-ChildItem -Path [設置ディレクトリパス]
- 既にマイクラサーバーが動作しているかプロセスの確認
マインクラフトサーバーが動作している場合、利用者に通知し、5分後にプロセスを落とすStart-Sleep -Seconds 300
Stop-Process -Name [プロセス名]
- 現在のサーバーのバックアップ
マインクラフトサーバーのフォルダを圧縮するCompress-Archive -Path "[現在サーバーのディレクトリ]" -DestinationPath "[圧縮先].zip" -Force
- bedrock-server.exeファイルのファイル名を戻す
複数のマインクラフトサーバーの起動を考慮し、bedrock-server-[Port番号].exeにファイル名を変更し実行していたため、bedrock-server-[Port番号].exeをbedrock-server.exeにファイル名を修正し、元に戻すRename-Item "[現在のbedrock-server-[Port番号].exeパス]" "bedrock_server.exe"
- 設定ファイルのコピーを作成
server.properties、allowlist.json、permissions.jsonファイルをコピーし、設定情報を退避するCopy-Item -Path "[現在サーバーのパス]\server.properties" -Destination "[バックアップ先パス]"
Copy-Item -Path "[現在サーバーのパス]\allowlist.json" -Destination "[バックアップ先パス]"
Copy-Item -Path "[現在サーバーのパス]\permissions.json" -Destination "[バックアップ先パス]"
- ダウンロードした新バージョンのサーバーを展開
bedrock-server-[バージョン].zipをフォルダ上へ展開し、上書きするExpand-Archive -Path "[設置ディレクトリパス]" -DestinationPath "[現在サーバーのパス]" -Force
- 設定ファイルを戻す
server.properties、allowlist.json、permissions.jsonをもとに戻すCopy-Item -Path "[バックアップパス]\server.properties" -Destination "[展開先パス]"
Copy-Item -Path "[バックアップパス]\allowlist.json" -Destination "[展開先パス]"
Copy-Item -Path "[バックアップパス]\permissions.json" -Destination "[展開先パス]"
- bedrock-server.exeファイル名の変更
bedrock-server.exeのファイル名をbedrock-server-[Port番号].exeへ変更し、プロセス管理しやすくするRename-Item "$[展開先パス]\bedrock_server.exe" "bedrock-server-[Port番号].exe"
- プロセスの実行
bedrock-server-[Port番号].exeプロセスを実行するStart-Process "[展開先パス]\bedrock-server-[Port番号].exe" -WindowStyle "Hidden"
また、python言語にてDiscordBotの実装を行いました。
