マイクラのマルチサーバー建てた話

バニラで建てたよ!!!

環境!!!!!!!!!!!!!!

CentOS7!!!!!
ConoHa VPS 2GBプラン!!!!!!!!!!!!!!!!!!!!!!!!!!!
Minecraft ver1.14.4!!!

参考サイト様

minecraft.server-memo.net

ConoHaにした理由

いつもはさくらのVPS使ってたんですが、初期費用が高いのと2か月前払いなのが辛いかもな~という理由で、今回は初期費用いらないConoHaにしました。
だって1か月以上マルチサーバー続いたことないし。

初期設定省略!!!

普通にユーザーを追加したり、権限をいじったり、firewallcmdの設定をしたり、sshの設定をしたり、ポートを閉じたり開いたりした

色々入れる

Javaのインストール

sudo yum install java

screenインストール

本当はdockerでやりたかったのですが、帰省が迫ってたのでめんどくさいと思い参考サイトの手順通りにやりました。
また時間空いたらdockerでたてなおしたいです。

sudo yum -y install screen

イクラのサーバーを動かす

ディレクトリ作成

mkdir mcsv
cd mcsv

イクラのサーバーを落とす

wget https://launcher.mojang.com/v1/objects/3dc3d84a581f14691199cf6831b71ed1296a9fdf/server.jar

起動

java -jar server.jar

Windowsと同じく色々生成されてるはずなので

vim eula.txt

eula=trueにする
もっかい起動してみる

java -jar server.jar

ip:25565で接続。

screenで起動してみる

 screen -AmdS minecraft java -Xmx1024M -Xms1024M -jar server.jar nogui

ここコピペガバなので無駄なコマンド多そう。

自動バックアップスクリプト、書くよ!

書くと言ってもコピペなんですけどね

vim backup.sh
#!/bin/bash

SERVICE='server.jar'
USERNAME='hoge'
SCNAME='minecraft'
MC_PATH='/home/hoge/mcsv'
BK_PATH='/home/hoge/bu'

BK_TIME=`date +%Y%m%d-%H%M%S`
BK_NAME="$BK_PATH/mc_backup_full_${BK_TIME}.tar.gz"
BK_GEN="3"

XMX="1024M"
XMS="1024M"


cd $MC_PATH

ME=`whoami`

if [ $ME == $USERNAME ] ; then
  if pgrep -u $USERNAME -f $SERVICE > /dev/null
    then
      echo "Full backup start minecraft data..."
      screen -p 0 -S $SCNAME -X eval 'stuff "say SERVER SHUTTING DOWN IN 10 SECONDS. Saving map..."\015'
      sleep 10
      screen -p 0 -S $SCNAME -X eval 'stuff "save-all"\015'
      screen -p 0 -S $SCNAME -X eval 'stuff "stop"\015'
      echo "Stopped minecraft_server"
      echo "Full Backup start ..."
      tar cfvz $BK_NAME $MC_PATH
      sleep 10
      echo "Full Backup compleate!"
      find $BK_PATH -name "mc_backup_full*.tar.gz" -type f -mtime +$BK_GEN -exec rm {} \;
      echo "Starting $SERVICE..."
      screen -AmdS $SCNAME java -Xmx$XMX -Xms$XMS -jar $SERVICE nogui
    else
      echo "$SERVICE was not runnning."
  fi
else
  echo "Please run the $USERNAME user."

find ${BK_PATH} -name "*.tar.gz" -mtime +7 -delete

#cd /home/hoge/bu
#./dropbox_uploader.sh delete bu
#./dropbox_uploader.sh upload /home/hoge/bu/ /bu

権限与える

chmod u+x backup.sh
crontab -e
0 12 * * * ./home/hoge/backup.sh

dropboxにぶん投げる処理は省略、終わり! 次回、spigotにしてdockerでたてたい編

追記

spigotにはしたけどdockerで建てるのはよく考えたら意味がわからんくなったのでなくなった