放置状態の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時に報告されている。
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 "tar -C \"$MCPATH\" -cf \"$BACKUP_FILE\" $WORLD"
echo "Backing up $SERVICE"
as_user "tar -C \"$MCPATH\" -rf \"$BACKUP_FILE\" $SERVICE"
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
は何を指しているのか
WORLD='VPSworld'
level-name=world
全部こいつのせいだ。
対応ログ
ワールドディレクトリを変更して対応
minecraft_server.jar was not running.
minecraft_server.jar is stopped.
`world' -> `VPSworld'
# サーバー設定の変更
# cp -v server.properties{,.org}
`server.properties' -> `server.properties.org'
28c28
< level-name=VPSworld
---
> level-name=world
バックアップの動作確認
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.
-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
圧倒的容量差
稼働開始
Starting minecraft_server.jar...
minecraft_server.jar is now running.