ローカルフォルダをPogoplugに定期的にバックアップ

pogo

先日書いたとおり、何回かに分けて現在のバックアップ体制を書いてみたいと思います。まずはメインPC(Windows7)の「Documents」、「Picutures」、「Music」、そして「Dropbox」フォルダのバックアップです(上図の①の部分)。

「Dropbox」フォルダについては、Dropboxのサーバ側にもデータがあるので不要かもしれませんが、いかにDropboxと言えども、データが消える事故が起きないとも限りません。なので、Dropboxも含めて、これらのフォルダを定期的にPogoplug(に接続しているHDD)にコピーします。

Pogoplugにはもともと「アクティブコピー」というバックアップ機能があります。以前のPogoplug Driveと呼ばれていたアプリ(Pogoplugのバージョン2.5.5まで)では、PC内の任意のフォルダをバックアップできたのですが、ソフトウェア版のPogolug(バージョン3.0.0以降かな?)ではバックアップできるのはリモートアクセスを有効にしたフォルダかPogoplug内のフォルダに限られています。それ以前に、バックアップのタイミングがよくわからない(すぐにコピーされることもあるし、数時間放置されることも)という問題もあるので、この機能は使いにくい。なので、ここではWindows7の標準コマンドであるrobocopyを使います。

WindowsでコピーコマンドというとXCOPYが有名ですが、robocopyはWindows Vista以降に標準コマンドとして採用されたもので、フォルダ間の同期、差分コピー、リアルタイムの監視など、XCOPYよりも多機能です。なんてことをえらそうに書いていますが、私もPogoplugへのバックアップを検討し始めてから知ったコマンドです。これまでは定期的に手動でコピーしてました。

で、肝心のrobocopyですが、ネットで検索すると使い方はいろいろ出てきますが、私は下記の設定をbackup.batという名前で保存し、タスクで1時間に1回実行しています。


@if not "%~0"=="%~dp0.%~nx0" (
start /min cmd /c,"%~dp0.%~nx0" %*
goto :eof
)
robocopy.exe "C:Usersユーザ名Documents" "P:PogoplugDocuments" /E /XO /R:2
robocopy.exe "C:Usersユーザ名Pictures" "P:PogoplugPictures" /E /XO /R:2
robocopy.exe "C:Usersユーザ名Music" "P:PogoplugMusic" /E /XO /R:2
robocopy.exe "C:Usersユーザ名Dropbox" "P:PogoplugDropbox" /E /XO /R:2

最初の4行はコマンドプロンプトを最小化するおまじないです。オプションの意味は、

オプション 意味
/E 空のフォルダもコピーする
/XO コピー元のファイルが古い場合はコピーしない
/R:n コピー失敗した場合にn回再試行す。規定値は1,000,000回

という感じです。

特に「/XO」は重要で、これを指定しておくと更新があったファイルのみの差分コピーとなります。この設定だと同期ではないので、コピー元のファイルを削除してもPogoplug側のファイルは削除されず増え続けることになりますが、バックアップが目的なのでそれでいいと思います。robocopyには同期(コピー元のファイルが削除されたらコピー先のファイルも削除する)を行う「/MIR」などのオプションもありますし、「/MON:n」「/MOT:m」で更新をリアルタイムに監視、コピーするということもできるようです。

各人が自分の考えにあったオプションを指定すればいいと思いますが、私の場合は

  • 上記の各フォルダはDropbox以外は常に監視しなければいけないほど頻繁にはアクセスしない。
  • 頻繁にアクセスはしないけどバックアップは取っておきたい。
  • Dropboxフォルダは、サーバ側にほぼリアルタイムで同期するので、ローカルでのリアルタイムバックアップは必要ない。
  • Pogoplug側の容量が不足しだしたら、そのときに容量を増やすか削除するか考える。

という方針で上記のオプションにしてみました。

ひとまずこれで上手くいっているようなので、しばらくはこのまま運用してみたいと思います。

タグ: , ,

back to top