読みました
マインクラフト 革命的ゲームの真実 (単行本)
無名プログラマーが一発当てたゲーム、Minecraft。の無名プログラマー部分に焦点を当てて書かれてる本です。熱いわー、一発当てたい。
マイクラは昔東京に出てきたばかりの時にハマってマルチサーバー運用してサーバー知識得て行ってサーバーぶっ壊してしばらくやってなかったんですが、マイクラ熱復活してきたのでリハビリがてらマルチサーバーの設定してみた。
自宅ローカル環境に構築したけど、外部からアクセスできるサーバーとかだったら普通に外部に公開できる。
対象サーバーはUbuntu 14.04.1
まずは必要なパッケージのインストール
sudo apt-get install openjdk-7-jre screen
マルチサーバーのダウンロード、起動。
mkdir minecraft
cd minecraft
wget -O minecraft_server.jar https://s3.amazonaws.com/Minecraft.Download/versions/1.8/minecraft_server.1.8.jar
java -Xmx1024M -Xms1024M -jar minecraft_server.jar nogui
<C-c>
だけどこの段階だと起動できない。
マルチサーバーを立てるにはEULAの認証が必要なので以下で確認
https://account.mojang.com/documents/minecraft_eula
EULAに同意できれば、作成されたeula.txt
でのをtrue
に変更する。
vi eula.txt
eula=true
以上でサーバーの起動ができるようになる。以下で立ち上がることを確認しておく。実際に接続できるか、Minecraftを起動して マルチプレイ -> サーバーの追加 でサーバーipを入力して確認
java -Xmx1024M -Xms1024M -jar minecraft_server.jar nogui
<C-c>
後は起動スクリプトとバックアップの設定
起動スクリプトはwikiで公開されてるものを使用する。wikiにあるスクリプトなので誰でも自由に変更することができる。使用するときは不審な記述がないか確かめておいたほうが安全かも。
cd
mkdir backup
wget -O minecraft "http://minecraft.gamepedia.com/Tutorials/Server_startup_script/Script?action=raw"
vi minecraft
以下の値を変更する
USERNAME='soramugi'
MCPATH='/home/soramugi/minecraft'
BACKUPPATH='/home/soramugi/backup'
sudo cp minecraft /etc/init.d/
sudo chmod +x /etc/init.d/minecraft
/etc/init.d/minecraft start
sudo update-rc.d minecraft defaults
しばらくすればマルチサーバーが起動される。
次は定期バックアップの設定
バックアップ先はとりあえずs3にしておく。簡単便利だけど金かかるのでバックアップ先は個々人で好き好きですね。
s3のバケットはあらかじめ作っておく。
sudo apt-get install python-pip
sudo pip install awscli
aws configure # access_key,secret_keyの設定
cd
vi crontab.bak
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
MAILTO=''
LANG=ja_JP.UTF-8
MC=/etc/init.d/minecraft
#,----------分
#| ,--------時
#| | ,------日
#| | | ,----月
#| | | | ,--曜日(0:日 1:月 2:火 3:水 4:木 5:金 6:土 7:日)
#| | | | |
#* * * * * command
# マイクラサーバーのバックアップ
# リストア方法
# tar zxvf $BACKUPFILE && mv world $DIR/world && mv *.jar $DIR
45 5 * * * $MC command say 'バックアップを開始します。1分後にサーバーがシャットダウンされ、再起動されます' && sleep 600 && $MC stop 100 && $MC backup && $MC start && find /home/soramugi/backup/ -name 'world*' -ctime +30 -exec rm {} \; && aws s3 sync --delete /home/soramugi/backup/ s3://{作成しておいたs3バケットネーム}/
crontab crontab.bak
で完了。時間になればサーバー内に通知、1分後にストップ、バックアップの作成、起動、30日以上前のバックアップ削除、s3に同期、してくれる。
あと起動スクリプトとかもバックアップさせておいたほうがよさそう
cp crontab.bak backup
cp minecraft backup
おつしゃしゃっした