#!/bin/sh ########################################## ######### バックアップスクリプト ######### ####### HDDのルートにバックアップ ####### ########################################## #rsyncのバックアップ元 declare src=/home/share/ #バックアップ先のHDDの名前(ファイルシステムのラベル) declare backupHDDlabel=NTFS250GB #ログファイル名(絶対パス) declare log=/home/share/log/backup.log ########################################## ########## 設定するのはここまで ########## ########################################## #文字化け対策 export LANG=ja_JP.UTF-8 declare datestr=`date +"%Y-%m-%d_%H%M%S"` echo "########### BackUpStart "$datestr" ##########" >> $log #マウントするディレクトリ declare mountdir=/media/$backupHDDlabel #backupHDDlabelでHDDを探してbackupHDD変数にデバイスラベル?を格納? declare backupHDD=`findfs LABEL=$backupHDDlabel` >> $log #backupHDDのマウント先のディレクトリを作成(エラー抑止) mkdir $mountdir >/dev/null 2>&1 #既にマウントしてるとマウント時にエラーが出るのでその前にわざとアンマウント umount $mountdir >/dev/null 2>&1 #backupHDDをマウント HDDが見つからない時はexit mount $backupHDD $mountdir || { echo "バックアップ失敗。HDDが見つかりません。" >> $log ; exit 1; } #必要ないけどこっちの方がわかりやすい declare dest=$mountdir #バックアップ rsync -ab --suffix=.$datestr~ --stats --exclude=log/ --exclude=exclude/ $src $dest >> $log echo "EndTime "$(date +"%Y/%m/%d %p %I:%M:%S") >> $log #ログ見やすいように改行挿入 echo "" >> $log #ログは同期(ログのログは残さない) rsync -a $src/log/ $dest/log/ >/dev/null 2>&1 #backupHDDをアンマウント(エラー抑止) umount $backupHDD >/dev/null 2>&1