#!/bin/sh
# ファイルサイズを判定してローテートするサンプル
# << SCRIPT SUB SECTION >>
##### ファイルサイズを判定してローテート
# $1:対象ファイル
# $2:ローテート条件
rotate() {
file_size=`ls -lk --time-style='+%Y%m%d' $1 | awk '{print $5}'`
file_time=`ls -lk --time-style='+%Y%m%d' $1 | awk '{print $6}'`
# ファイルサイズがローテート条件を超えたら
if [ ${file_size} -gt $2 ]; then
tar -zcf $1.${file_time}.tar.gz $1
# 0バイト化
:> $1
fi
}
# << SCRIPT MAIN SECTION >>
TRAGET_DIR=/home/operation # ローテート対象ディレクトリ
TRAGET_FILE=rsync.log # ローテート対象ファイル
THRESHOLD=20 # KBで指定
BASE=`pwd`
cd ${TRAGET_DIR}
rotate ${TRAGET_FILE} ${THRESHOLD}
ls -l ${TRAGET_FILE}*
cd ${BASE}
exit 0
2011年3月31日木曜日
シェルスクリプトサンプル:ファイルローテート
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿