2013/07/05

findコマンド 3日前のファイルを舐めて消して、バックアップを取る

シェルスクリプトを作成

#!/bin/sh
#バックアップ シェルスクリプト
#バックアップフォルダ名は、YYYY-MM-DD-HHMMとする。
#例) 2012-01-01-0100
#crontabと連携し、日数を指定する
#2日分持つ
#ほんとはコピーとデリートのシェルスクリプトを分けた方がいい。


echo "File backup start at `date`"
days=2
 

# ○日前以前にアクセスされたファイルを消す。
echo "Old backup ($days days passed) delete"
find [targetFile] -atime +$days -print -exec rm -fR {} \;

# find [検索するディレクトリ] (option) 
# -atime (+/-)n 最後にアクセスされたのが
#  n日前のファイル・ディレクトリを検索(+n:n日以上、-n:n日以下)
# 今回は -mtime +$days としているので 設定日数変更可能。
# -print     検索結果の標準出力
# -fprint [file name]     検索結果を指定したファイルに書き出す
# -exec [command] {} \;     検索結果をコマンドに引き渡して実行


#ディレクトリレベルで個別設定し新規作成が必要な場合使用
#fdir="作成するディレクトリのフルパス"
#if [ ! -e $fdir ]
#then
#    echo "create backup directory $fdir"
#    mkdir $fdir
#fi

#任意のディレクトリに 2012-01-01-0100 のディレクトリを作成する。
dName=[バックアップ先のディレクトリフルパス]`date '+%Y-%m-%d-%H%M'`

echo "Copying to the BackupFile"
#バックアップ元のディレクトリを指定
#個別で指定する場合は、複数行記述する。

cp -R [バックアップ元ディレクトリフルパス] $dName

echo "DB backup end   at `date`"


0 件のコメント:

コメントを投稿