ファイル同期

バックアップやアクセス性向上のためDropboxやSugarSyncを利用しているのだが、普段サーバ上のネットワークドライブにファイルを置いているため、同期設定をすることができない。
そのため、ネットワークドライブ-仮想マシン間で同期ソフトによる同期を行い、仮想マシンのフォルダをDropboxやSugarSyncで設定することにより、自動的に更新されるようにしている。

そのため、同期ソフトが必要となる。
機能的にAllway Syncというものが

  • ファイルの削除も含めた双方向同期
  • 指定間隔同期
  • ファイルの変更が確認された時、自動的に同期

ということが可能であり、要件を満たしている。
ただ、「30日間の期間あたり20000個未満のファイル」という制限があるらしく、Dropboxで同期しているとあっという間に制限を超えてしまった。


他に同期ソフトとしては

  • CopyTo Synchronizer Free
  • ばっちり同期
  • RealSync
  • SyncToy

等々、他にも色々と存在したが、自動的に同期し、フォルダ内で削除したら同期で削除してくれる、という同期ソフトは見つけられなかった。


削除ファイルの同期という点ではSyncToyを用いれば出来るのだが、ソフトに自動同期が存在せず、タスクスケジューラでは日単位による同期しかできないようだった。
SyncToy を使用してフォルダのバックアップを行う - Windows - ソーサリーフォース
Microsoftのツール「SyncToy 2.1」でフォルダを手軽に同期してみる (1) SyncToy 2.1のダウンロードとセットアップ | マイナビニュース


ここで、ファイルの変更を感知してプログラムを起動出来ればいい、という事に気付き、色々フリーソフトを探していると、職場で使えるソフトのフォルダ監視というソフトがあった。しっかりファイルの変更検知時に任意のプログラムを起動できるとのこと。


それぞれのソフトについて詳しくはリンク先や検索ですぐ出てくると思うが、軽くまとめておく。

  • SyncToy

同期するペアの作成。

同期したいフォルダを選択する。
LeftからRightにしか反映されない設定もあるが、今回は関係ない。

それぞれで同期パターンが異なるが、完全同期を行うためSynchronizeを選択。

ペアの名前の設定。
後のフォルダ監視の設定の際に必要になる。

  • フォルダ監視


[追加]から監視対象のフォルダを選択。(SyncToyで設定したフォルダ。LeftとRight両方とも)
追加されたら選択し、サブフォルダも監視のチェック。
監視する間隔の設定。各環境に合わせて。余り短いと負荷をかけすぎるかもしれない。
Windwos起動時にフォルダ監視を実行するのチェックを入れる。

プログラム起動設定から監視対象のフォルダ毎プログラムの設定を行う。
パラメータの""で囲まれた部分は、ペアの名前となる。


ざっとした流れはこんな感じか。
これで同期が可能となったが、1つ問題?があり、
同期元ファイルの変更感知→SyncToyによる同期→同期先ファイルの変更感知→SyncToyによる同期
と、同期ソフトが2回起動してしまう。実害はないんだが、もう少しスマートに出来そうとは思っている。
同期パターンでEchoを使い、それぞれのフォルダ毎にパラメータ設定を分ければ設定はより複雑になるが、解消できるかもしれない。