2011/04/19

Mac で簡易バックアップ

Mac は rsync (1) が標準で搭載されていて 簡単に差分転送する事ができるので、 簡易的なバックアップが手軽に実施できて便利である。

以下のコードはリモートサーバのディスクを samba 形式で mount (8) し、 rsync (1) で同期するためのスクリプト。
バックアップ先のディスクを samba 形式でマウントするので、 バックアップ先が Windows パソコンでも動作する。
Finder の共有から一度バックアップ先のディスクにアクセスして パスワードをキーチェーンに記憶させると、 以降はパスワードの問い合わせがなくなるので便利だろう。
バックアップ先が unix 系のサーバの場合であれば、 mount (8) しないで rsync (1) に 直接リモートサーバを指定しても良い。 その場合 -e オプションを指定して ssh (1) 経由で転送する事が望ましい。

  1#!/bin/sh
  2
  3# バックアップ対象(= バックアップ先ディレクトリ)
  4target="Pictures Music"
  5# バックアップ先サーバ
  6Server="<u>リモートサーバ</u>"
  7# バックアップ元ディレクトリを格納しておき eval(1) で展開する
  8Pictures="Pictures"
  9Music="Music/iTunes/iTunes Music"
 10
 11# "-f" オプションを指定しない場合は実際には転送しない
 12test "$1" = "-f" || dry=n
 13
 14for i in ${target}
 15do
 16    src="${HOME}/`eval echo '$'${i}`"
 17    dst="/Volumes/${i}"
 18    
 19    mkdir -p ${dst}
 20    mount -t smbfs //${Server}/${i} ${dst}
 21    rsync -avz${dry} --delete --exclude '._*' --exclude .DS_Store "${src}/" "${dst}"
 22    umount ${dst}
 23done
    


Copyright © 2008-2020 Mitzyuki IMAIZUMI. All rights reserved.