はじめに
【自己責任でお願いします】
真偽のほどは不明ですが、ネットの情報とChatGPT君のアドバイスを元にEC2インスタンス上のマイクラサーバのバージョンアップ(1.21.4→1.21.5)をやってみました。
多分数カ月後の自分が同じことで困ると思うので、やったことをとりあえず備忘録的に残しておきます。
(駆け出しエンジニアなので用語や知識があやふやです。大目に見てください。)
バージョンアップ手順
やったことは下記の通りです
- バックアップ
- BuildToolsのダウンロード
- ビルド
0.マイクラサーバの停止
裏で動いているマイクラを止めておく。バックアップのためや、ワールドデータが壊れないように。
止め方は後で追記予定。
1.バックアップ
とりあえずtarコマンドを使ってバックアップ。
バックアップ対象はワールドファイルだけでも良さそうな記述を見かけるのですが、なんとなく怖いのでMinecraftディレクトリ全体をバックアップ。(たぶん非効率的)
$ cd /home/minecraft/
$ sudo tar -cvzf minecraft_backup_$(date +%Y%m%d).tar.gz .
2.BuildToolsのダウンロード
自分はspigotでインストールしたので、spigotからBuildToolsを持ってくる。
BuildToolsはGoogleで「spigot 1.21.5」とか検索すれば出てくる。
今回見たサイトは下記のもの。
https://www.spigotmc.org/threads/spigot-bungeecord-1-21-5.684226/
wgetコマンドでminecraftディレクトリ内にBuildToolsを持ってくる。
サイト内に下記のような記述があるので、そのリンク(this link部分)をコピーしてwgetの後ろ側にペースト。
Downloading / Installing
In order to get 1.21.5, ...(中略)... You can download the latest BuildTools from this link.
$ cd /home/minecraft
$ wget https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar
別のディレクトリに一旦ダウンロードしてjavaファイルを生成し、リネームしてからいつもの場所(/home/minecraft
)に突っ込む方が丁寧。だがめんどいので省略。
3.ビルド
ダウンロードしてきたBuildToolsがある場所で下記のコマンドを実行。
java -jar BuildTools.jar --rev 1.21.5
6分くらいかかった気がする。
完了すると、コマンドを実行した階層にspigot-1.21.5.jar
みたいなものが出来上がる。
4.起動スクリプト修正
私は下記のサイトを参考にEC2インスタンス起動時にマイクラサーバも立ち上げるように設定した関係で、下記のコマンドが書かれたシェルスクリプトを修正する必要があった。
参考:https://note.com/unixon/n/ndd0799d972bf(5.Minecraftサーバの自動起動)
### start_minecraft.sh ###
cd /home/minecraft/
java -Xmx○○G -Xms○○G -jar spigot-1.21.5.jar nogui
5.動作確認
あとはstart_minecraft.shを叩いて動作確認しても良し。
自動起動まで確認するために一度再起動しても良し。
自分への注意事項
この記事をご覧の方には一切有益ではない情報ですみません。
- Minecraftサーバ上のアクティブユーザがいない状態で15分が経過すると自動でサーバを落とす設定にしていることを忘れて作業しないこと
- サーバが起動してからは30分の猶予を持たせているが、この仕組み自体を一時的に止めた方が賢明。cronで5分おきにpythonスクリプトを呼び出しているので、
sudo crontab -e
で一旦コメントアウトしてメンテしてた。 - 参考:https://zenn.dev/shatos/articles/50c43d875a64eb#%E8%87%AA%E5%8B%95%E5%81%9C%E6%AD%A2(自動停止)
- サーバが起動してからは30分の猶予を持たせているが、この仕組み自体を一時的に止めた方が賢明。cronで5分おきにpythonスクリプトを呼び出しているので、
- 今回はマイクラサーバをkillで止めていたが、ユーザデータを編集して仮想コンソール上(screen)で動かすようにしてみた。動作未確認。
-
screen -r minecraft
で呼び出し、stop
を打てば良さそう。大体どのサイトもstop
で止めろしか書いてなくて悲しくなったので。 - systemdで管理する方法もありそうだが、今回は一旦スルー。気が向いたら試してみる。
-