放置状態のMinecraft、久しぶりに様子を見てみたらバックアップに失敗していた。 はてどうしたものかとcronからの通知を確認すると
Date: Tue, 21 Feb 2017 04:00:01 +0900 (JST) minecraft_server.jar is running... suspending saves Backing up minecraft world... tar: VPSworld: stat 不能: そのようなファイルやディレクトリはありません tar: 前のエラーにより失敗ステータスで終了します Backing up minecraft_server.jar minecraft_server.jar is running... re-enabling saves Compressing backup... Done.
oh…
どこがトラブルポイントなのか調べる
まずはcronの確認から。現象は4時に報告されている。
# crontab -l 30 4 * * * /etc/init.d/minecraft restart 0 4 * * * /etc/init.d/minecraft backup
4時に実行されるコマンドはminecraft backup
。
もうどこから持ってきたか忘れてしまったminecraftコマンドの中身を漁る。
case "$1" in # 略 backup) mc_backup ;; # 略 esac
mc_backupのみ
mc_backup() { mc_saveoff NOW=`date "+%Y-%m-%d_%Hh%M"` BACKUP_FILE="$BACKUPPATH/${WORLD}_${NOW}.tar" echo "Backing up minecraft world..." #as_user "cd $MCPATH && cp -r $WORLD $BACKUPPATH/${WORLD}_`date "+%Y.%m.%d_%H.%M"`" as_user "tar -C \"$MCPATH\" -cf \"$BACKUP_FILE\" $WORLD" echo "Backing up $SERVICE" as_user "tar -C \"$MCPATH\" -rf \"$BACKUP_FILE\" $SERVICE" #as_user "cp \"$MCPATH/$SERVICE\" \"$BACKUPPATH/minecraft_server_${NOW}.jar\"" mc_saveon echo "Compressing backup..." as_user "gzip -f \"$BACKUP_FILE\"" echo "Done." }
echoの内容から、as_user "tar -C \"$MCPATH\" -cf \"$BACKUP_FILE\" $WORLD"
になにかあったことがわかる。
tar コマンドのオプション
-C
: change directory-c
: 書庫の作成モードとして動作する-f ファイル名
: 指定した書庫ファイルまたはデバイスを(書き込みに)使用する
Linuxコマンド集 - 【 tar 】 ファイルを書庫化・展開する(拡張子.tarなど):ITpro
あやしいわーるど
$WORLD
は何を指しているのか
# grep "WORLD=" minecraft WORLD='VPSworld'
minecraftはどのサーバを使っているのか
- 【バージョン1.8.3】 サーバ設定ファイル(server.properties) | server-memo.net
- server.properties – Official Minecraft Wiki
# grep "level-name" server.properties level-name=world
全部こいつのせいだ。
対応ログ
ワールドディレクトリを変更して対応
# 作業に入る前にminecraftを確実に停止させる # sudo service minecraft stop minecraft_server.jar was not running. minecraft_server.jar is stopped. # ワールドディレクトリの名前変更 # mv -v world VPSworld `world' -> `VPSworld' # サーバー設定の変更 # cp -v server.properties{,.org} `server.properties' -> `server.properties.org' # vi server.properties # diff server.properties{,.org} 28c28 < level-name=VPSworld --- > level-name=world
バックアップの動作確認
# sudo service minecraft backup minecraft_server.jar is not running. Not suspending saves. Backing up minecraft world... Backing up minecraft_server.jar minecraft_server.jar is not running. Not resuming saves. Compressing backup... Done. # ll -h backup/ # ======省略====== -rw-r--r-- 1 minecraft minecraft 184 2月 21 04:00 2017 VPSworld_2017-02-21_04h00.tar.gz -rw-rw-r-- 1 minecraft minecraft 109M 2月 21 13:36 2017 VPSworld_2017-02-21_13h36.tar.gz
圧倒的容量差
稼働開始
# sudo service minecraft start
Starting minecraft_server.jar...
minecraft_server.jar is now running.