minecraft-init 覚書

minecraft-init とは

minecraft-init (github.com/Ahtenus/minecraft-init) は、仮想端末screenを介してMinecraft/Craftbukkitサーバーのコンソール制御を実現する起動スクリプト。動作にはscreen,rsyncが必要。

主な機能は

  • 起動&停止
  • Bukkitコマンドの実行
  • ワールドデータのバックアップ
  • ログファイルの管理(圧縮退避)

など。また、これらは全てcronで自動化できるので、バックアップやログ退避はcronに設定することになるだろう。

他にサーバーjar本体のアップデート機能もあるが、CraftBukkitに関しては、2014/09現在DMCA法に基づく訴えにより公開が停止されているため、機能しない。

準備

1. /etc/init.d にシンボリックリンクを貼る

マシン起動時にスクリプトが実行されるようにする。

Debianでの例
sudo ln -s ~/minecraft-init/minecraft /etc/init.d/minecraft
chmod 755  ~/minecraft-init/minecraft
sudo update-rc.d minecraft defaults

2. configファイルを設定する

config.exampleをコピーしてconfigとし、必要に応じて値を書き換える。

3. ワールドデータをconfigに設定したWORLDSTORAGEディレクトリ配下に移動する

4. cronを設定する

crontab -e -u USER
USERはサーバーを実行するユーザーにすること。

#m  h   d  mon dow command
0   */2 *  *   *   /etc/init.d/minecraft backup
0   4   *  *   *   /etc/init.d/minecraft log-roll

おわり

config 設定項目一覧

全般

項目 説明
MC_JAR バニラサーバーのjarファイルの名前
CB_JAR CraftBukkitサーバーのjarファイルの名前
CB_RELEASE 使用するCraftBukkitのリリース(安定版か不安定版か) *1 
SERVICE 使用するサーバーの種類(MC_JARかCB_JARを選択)
SCREEN MC/CBを実行するスクリーンの名前(適当でよい。直接操作するためにスクリーンにアタッチする際に使用する)
USERNAME MC/CBを実行するユーザー名
MCPATH MC/CBを設置するディレクトリのパス
SERVERLOG 最新のログファイルのパス(このログから各種情報を取得する)
WORLDSTORAGE ワールドデータを置くディレクトリ
CPU_COUNT 使用するCPU数
INITMEM メモリ使用量の初期値
MAXMEM メモリ使用量の最大値
FORMAT 通常は変更しない。ConsoleLikeChatプラグインを使用する場合は、変更する。

バックアップ関連

項目 説明
BACKUPPATH ワールドデータをバックアップするディレクトリのパス
BACKUPFORMAT バックアップファイルの形式(tarかzipを選択)
BACKUPSCRIPTCOMPATIBLE バックアップをrotate-backupsに対応させるか否か
WORLDEDITCOMPATIBLE バックアップのディレクトリ構造をWorldEditに対応させるか否か
COMPRESS_WHOLEBACKUP 全体バックアップの際、bzip2で圧縮するかどうか

ログ関連

項目 説明
LOGPATH 古いログを退避するディレクトリのパス(log-roll)
GZIPLOGS ログをgzipで圧縮するかどうか(※NOの場合はコメントアウトする)
LOGFILEAPPEND ログファイルの名前につけるプレフィクス

Minecraft Overview 関連

項目 説明
OUTPUTMAP マップの出力先
OVPATH Minecraft-Overviewerのパス
OVCONFIGPATH コンフィグファイルのパス
OVCONFIGNAME コンフィグファイルの名前
OVBACKUP バックアップの保存先

その他

項目 説明
INVOCATION 実際の実行ステートメント
RAMDISK RAMDISKのマウント先

*1:自動アップデート関連の設定項目。2014/09現在機能しないため無意味。