2015年11月26日木曜日

rsyncで外付けUSBハードディスクにバックアップするシェルスクリプトのメモ。

rsyncを使ったバックアップ用のシェルスクリプトを書いたのでメモ。
USBに対してバックアップする用途。
USBにはあらかじめ「backupdata」というディレクトリを作成しておく。

vi backupusb.sh
で作成。

#!/bin/sh

#変数。上がソースで下が書き出し先
sharedir=/backup-source-directory
backupdir=/media/backupusb/backup-data-directory

#if文で同ディレクトリが存在するかどうか確認(特にバックアップ先のマウント忘れ防止)

if [ -e $backupdir ] && [ -e $sharedir ]; then

#ログファイル作成
touch $backupdir/rsync.log

#rsyncでバックアップする。
#書式はrsync -オプション /バックアップ元ディレクトリ /バックアップ先ディレクトリ

rsync -avhP $sharedir $backupdir --delete --log-file=$backupdir/rsync.log

#各オプションは、大文字小文字の区別あり。
#「-a」再帰的に様々な要素を複製する。ざっくり言うと、極力まんまコピーする。
#「-v」おしゃべり。
#「-h」単位を丸める
#「-P」進捗表示
#「--delete」オプションはバックアップ元ディレクトリとバックアップ先ディレクトリを比較
#バックアップ元から無くなっている場合はバックアップ先からも消去する。
#「--log-file」オプションは、指定先に対してログを書き出す。

else
 echo "DONT MOUNTED!!"
fi
以上で。

chmod +x backupusb.sh
で実行権限を付けて、
sh backupusb.sh
で実行。
cron等に登録するのも良い。

オプションに-nが入るとテストモード。

http://open-groove.net/shell/if-and-or/
とまんま同じところではまったので、リンクを残しておく。
要はif文で、●●かつ■■が正しい場合、はandではなくtest文の[]を&&でつなぐという。

http://inaz2.hatenablog.com/entry/2013/07/10/142129
がわかりやすい。

0 件のコメント:

コメントを投稿