トップページ»3.1.Linux/UNIX»シェルスクリプトでファイルのローテーション

3.1.Linux/UNIX



シェルスクリプトでファイルのローテーション

シェルスクリプトでファイルをローテーションしたいときのメモ。 いつもの如くbashでの話。

ログやらバックアップファイルやら、時折特定のファイルをローテーションしたくなる事に出くわす。 logrotateでもできるが、ローテーションの処理もスクリプトに含ませたい事もあるわけで。

# ログのローテーション
TARGET_FILE="/var/hoge/hoge.log"
i=7
while [ $i -gt 1 ]
do
  if [ -e $TARGET_FILE.`expr $i - 1` ]; then
    mv -f $TARGET_FILE.`expr $i - 1` $TARGET_FILE.$i 2>&1 1>/dev/null
  fi
  i=`expr $i - 1`
done
if [ -e $TARGET_FILE ]; then
  mv -f $TARGET_FILE $TARGET_FILE.1 2>&1 1>/dev/null
fi

先頭のTARGET_FILEにローテートさせたいファイルを、iにレベルを入れる。





投稿日 : 2005年3月 7日

この記事に関する言及

このエントリーのトラックバックURL:
http://akionweb.com/mt-tb.cgi/172

コメント

このページに対する感想、意見をお寄せ下さい。




保存しますか?

(書式を変更するような一部のHTMLタグを使うことができます)

おことわり

当サイトに掲載している全ての情報は、全て当サイト管理者が個人的、実験的に試した事、又は独自に調査したものです。 従ってその情報に誤りがある可能性も多分にあります。 当サイトの情報をそのまま鵜呑みにされませんようお願い申し上げます。 また当サイトの情報を元に作業されたりする場合はそれをご理解頂いた上で、あくまで自己責任の元で行ってください。

トップページ»3.1.Linux/UNIX»シェルスクリプトでファイルのローテーション