ログバックアップツール

シェル名 引数 リストファイル リストファイルの内容
log_backup.sh なし log_backup.lst ファイル名(フルパス)

  • ソースコード
#!/bin/sh
########################################################
#
# ログファイルバックアップツール
#
# 用途: ログファイルのバックアップを行う。
#    任意の世代数だけ保存する
# 引数: なし
#
# 作成日: 2013/9/07
# 作成者:
#
########################################################

#----変数定義-------------------------------------------------
listfile=../etc/log_backup.lst #リストファイル
backup_path=../bkup
generation=2

#----内部関数定義---------------------------------------------



#----メイン処理-----------------------------------------------

#リストファイルの存在確認
ls -l ${listfile} > /dev/null 2>&1
if [ $? -ne 0 ]; then
 echo "リストファイルが存在しません"
 rc=1
 exit ${rc}
fi

#バックアップ先が存在するか確認
ls -l ${backup_path} > /dev/null 2>&1
if [ $? -ne 0 ]; then
 echo "バックアップ先が存在しません"
 rc=2
 exit ${rc}
fi

#ループ処理開始
while read logfile
do
 #ファイルをバックアップ先にコピー
 cp -p ${logfile} ${backup_path}/`basename ${logfile}`_`date +%Y%m%d` \
 > /dev/null 2>&1

 #コピーに失敗したらエラー終了
 if [ $? -ne 0 ]; then
   echo "バックアップ先へのコピーに失敗しました"
   rc=3
   exit ${rc}
 fi

 #指定された保存世代数を超えていたら古いファイルから削除
 ls -1 ${backup_path} | grep `basename ${logfile}` | file_num=`wc -l`

 if [ ${file_num} -gt ${generation} ]; then
   echo "ああ"
 fi

done < ${listfile}
最終更新:2014年03月22日 01:02