Minecraftのサーバーログを自動で整理・圧縮する、スクリプトの作成方法を解説します。
スポンサーリンク
目次
スクリプト作成
これから作成するスクリプトは、下記処理を行います。
- 作業用ディレクトリ作成
- 先月分のログをまとめる
- まとめたログを圧縮
- 作業用ディレクトリ削除
スクリプトを作成する
/opt/minecraft/server/に、下記内容のlog_compress.shを作成します。
log_compress.sh
#!/bin/bash
# ログ圧縮スクリプト
#
# 引数なし
# Minecraftサーバーのルートディレクトリ
ROOT_DIR=/opt/minecraft/server
# 先月の日付
LAST_MONTH=`date -d "$(date +'%Y-%m-01') 1 month ago" +'%Y-%m'`
# ログ格納用ディレクトリ作成
LOG_DIR="${ROOT_DIR}/logs/$LAST_MONTH"
if [ ! -d ${LOG_DIR} ]; then
mkdir $LOG_DIR
fi
# ログの移動
find "${ROOT_DIR}/logs/" -type f -name "${LAST_MONTH}*" | xargs -I% mv % $LOG_DIR
# 圧縮
##gz形式
tar -zcvf "${LOG_DIR}.tar.gz" $LOG_DIR
##bz2形式
# tar -jcvf "${LOG_DIR}.tar.bz2" $LOG_DIR
##xz形式
# tar -Jcvf "${LOG_DIR}.tar.xz" $LOG_DIR
##7zip形式(インストール要)
# 7z a -mx=9 "${LOG_DIR}.7z" $LOG_DIR
# 格納ディレクトリ削除
rm -rf $LOG_DIR実行権限を付与する
コマンド
chmod +x log_compress.shcronに設定して自動化
cronの設定を開く
下記コマンドの引数は -e です。絶対に -r と打ち間違えないでください
コマンド
crontab -e設定の最後尾に、下記を追記
crontab
# 毎月5日の4時に実行
0 4 5 * * /bin/bash /opt/minecraft/server/log_compress.shスポンサーリンク

