develop

プチ・オールドなPowerMacをファイルサーバーに!~第4回~ 覆水盆に帰らず!

Return of the“Petit-Old Mac” Vol.004

~バックアップ設定~
■バックアップを取る意味

今回構築したファイルサーバーの起動システム及び共有データ領域はRAID1でミラーリングしています。2つのディスクを二重化することはディスクの故障などによるハードウェア的な障害には強いのですが、ユーザーが誤ってデータを上書き、あるいは消してしまった場合も同時に反映されてしまうため、データを元に戻す事ができません。
しかし、毎日別のディスクにバックアップ取っていれば、たとえデータを損傷したとしても前日までのデータは残っていることになります。サーバーの堅牢性と安全性を達成するためにもバックアップは非常に重要な位置を占めているのです。

 
■バックアップソフトの選定

バックアップスケジュールを設定できるのはもちろんですが、数十GBに及ぶデータを毎日フルバックアップするのは非効率で時間もかかってしまいます。
サーバーに無用な負荷をかけないためにも更新された差分だけのデータをバックアップができるものが望ましいです。
また、データの安全性を確保するためにも、バックアップの際に特殊な形式でイメージファイル化されるものは避けた方が無難です。(単にデータがコピーされる形式が望ましい)

・必要な条件
  • スケジュールバックアップができること。
  • 差分バックアップができること。
  • 設定が簡単であること。
  • バックアップ時に通常のファイル、フォルダ形式が保たれるもの。(特殊なアーカイブ形式にならないもの)
  • なるべく負荷がかからないもの。

上記を踏まえ、実際に幾つかの有名なバックアップソフトウェアを試してみましたが・・・

  • iBackup (フリーウェア)
  • Deja Vu(シェアウェア)
  • SwitchBack (シェアウェア)
  • SilverKeeper(フリーウェア)

photo

結局Deja Vu以外はいづれも初回バックアップ中に止まってしまうという結果になりました・・・(CPUのパワーが足りないせいなのかOSのバージョンとの相性が良くないのか原因はわかりません)
Deja VuはToast6にバンドルされてくる(ToastをアップデートするとDeja Vuもアップデートされます)ので、安易な気持ちで使ってみたのですが、なかなかどうして根性がある!
Retrospect などの本格的で多機能なバックアップソフトも検討しましたが、必要十分かつ負荷も少ない(唯一完了できたし)と思えたので採用に至りました。

Deja VuはインストールされるとOSXのシステム環境設定(その他)に加えられます。
スケジュール設定も"いつ""何を""どこへ"という形式で表記されているので非常にわかりやすくシンプルです。
今回の例では"毎日""Public(共有フォルダ)""Backup(ボリューム)"に設定しています。
例では詳細の設定項目で毎日午前4時から実行するようにしています。
(バックアップの開始時間は1度フルバックアップを取り、だいたいどれくらいの時間がかかるのかを把握した上で、設定しましょう)
最初のバックアップの際には時間はかかりましたが、次回バックアップからは差分ファイルだけバックアップされ、短時間で完了するようになります。
Deja Vuにははセーフティネットという機能もあり、昨日と今日のファイルを比較し、変更/削除があったファイルはアーカイブ化して別フォルダ(Document/Safety Net Archives)に保存してくれたりもします。
保存数も設定できるので世代管理も可能です。

このようにDeja Vuはかなり使えるソフトウェアなのですが、バックアップの動作をメールなどで通知する手段がないのが難点といえば難点。(画面上で通知はしてもログは吐き出さない)バックアップがちゃんと行われているかどうか気になるし、でも確かめるのにいちいちバックアップフォルダを開くのも面倒です。
なんとか自動化したいと考え抜き、じ・つ・は前述のセーフティネットとフォルダアクションを組み合わせることで無理矢理実現しました。

原理は単純。日常的に使用されるサーバーであればたいてい変更や削除は発生し、セーフティーネットのアーカイブフォルダにファイルが加わります。そこにメールを送信するAppleScriptをフォルダアクションとして仕掛けるだけです。
完全なバックアップ完了通知ではないですが、目安としては有効です。(何日もメールがこなければ何かおかしいということになります)

・具体的な設定方法
  1. 下記文面のスクリプトをスクリプトエディタ(アプリケーションフォルダのAppleScriptフォルダの中)で作成します。
    メールアドレス、件名、メッセージは任意に設定してください。
    特にメールアドレスは実際使っているアドレスじゃないとメールが届きません!
     

    on adding folder items to this_folder after receiving added_items
      try
        set theSender to "backup@spirica.jp"
        set theAddress to "backup@spirica.jp"
        set theSubject to "Backup Status"
        set theBody to "バックアップが完了したかもよ!!"
        tell application "Mail"
          set newMessage to make new outgoing message with properties {subject:theSubject, content:theBody & return}
          tell newMessage
            set visible to false
            set sender to theSender
            make new to recipient at end of to recipients with properties {address:theAddress}
          end tell
          send newMessage
        end tell
      end try
    end adding folder items to

     
    コンパイルしてスクリプトとして保存します。(名前はbackup.scptなど)
    スクリプトの保存場所はファイルサーバーの
    Library/Scripts/Folder Action Scripts
    のなかに入れておきます。
  2. ファイルサーバーの管理者ユーザーフォルダ(ここではShareuser)/Document内の Safety Net Archivesフォルダを選択しコンテキストメニューを表示します。
  3. "フォルダアクションを関連づける"を選択し、先ほど保存したスクリプト(backup.scpt)と関連づけます。
  4. Mailのアカウント設定(利用可能なメールアドレス、サーバー設定)を行う。
  5. 環境設定→アカウントを開きログイン項目にMailを追加します。
    (Mailを起動していないと通知メールが送れません)
  6. Safety Net Archivesフォルダに何かファイルを入れてみて、メールが送信されれば、設定はOKです。

この方法はDeja Vuでなくてもログを一定のフォルダに吐き出すソフトウェアなら利用できると思いますので、ご利用のバックアップソフトと組み合わせて是非ご利用ください。

セキュリティの設定方法については第5回に続きます!