LastBackup=`ls -t $BackupDIR | grep backup | tail -1`
ディレクトリ名にbackupが入っていると、ソートが上手くいかないようで、
tailが最新の日付を返していない。
そのため、--link-destのバックアップがハードリンクになっていない。
--link-dest の動き
コピー元のディレクトリ ⇒ $NewBackup
但し コピー元のディレクトリ の内、LastBackup にあるものは、ハードリンクを生成する。
つまり、容量が増えない。
スクリプトシェル
#!/bin/sh
# バックアップ先ディレクトリ指定
BackupDIR=/home/*****/dailyBackup
mkdir -p $BackupDIR
# バックアップログ定義
BackupLog=/home/*****/log/rsync_backup.log rm -f $BackupLog
touch $BackupLog
chmod 600 $BackupLog
#エラーチェック
error_exit () {
exit 1
}
#バックアップ実行
echo "`date` backup start" >> $BackupLog
LastBackup=`ls -t $BackupDIR | grep backup | tail -1``ls -t $BackupDIR tail -1`
NewBackup=`date +%Y%m%d`backup ←これを消す。
mkdir $BackupDIR/$NewBackup
rsync -rlptv --ignore-existing --whole-file --link-dest=../$LastBackup /コピー元のディレクトリ/ $BackupDIR/$NewBackup >> $BackupLog 2>&1
# バックアップ先ディレクトリ指定
BackupDIR=/home/*****/dailyBackup
mkdir -p $BackupDIR
# バックアップログ定義
BackupLog=/home/*****/log/rsync_backup.log rm -f $BackupLog
touch $BackupLog
chmod 600 $BackupLog
#エラーチェック
error_exit () {
exit 1
}
#バックアップ実行
echo "`date` backup start" >> $BackupLog
LastBackup=
NewBackup=`date +%Y%m%d`
mkdir $BackupDIR/$NewBackup
rsync -rlptv --ignore-existing --whole-file --link-dest=../$LastBackup /コピー元のディレクトリ/ $BackupDIR/$NewBackup >> $BackupLog 2>&1
code=$?
if [ $code -ne 0 ]; then
cat $BackupLog | mail -s "BACKUP NG CODE IS $code" root
rm -rf $BackupDIR/$NewBackup
error_exit
fi
echo "`date` backup end" >> $BackupLog
0 件のコメント:
コメントを投稿