Windowsでのファイル同期について。

PCとネットワーク上にあるファイルサーバとで、
特定のフォルダ内のファイルを同期したいので調べた。
目的はファイルのバックアップと、他の人がどんなことをしているか見やすくするため。
ローカルのあるフォルダが変更されたら、サーバ上のフォルダも変更されるようにしたい。

【環境】
Windows 7 Professional 64bit

【参考URL】
http://windows.microsoft.com/ja-jp/windows-vista/how-to-keep-your-information-in-sync
http://www.atmarkit.co.jp/ait/articles/0704/20/news130.html
http://wiki.mesolabo.com/?%E3%83%A1%E3%82%BD%E7%9F%A5%E6%81%B5%2FWindows%2F%E3%82%AA%E3%83%95%E3%83%A9%E3%82%A4%E3%83%B3%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%8C%E3%81%A9%E3%81%86%E3%82%82%E3%81%8A%E3%81%8B%E3%81%97%E3%81%84%E6%99%82%E3%81%AE%E5%AF%BE%E5%87%A6%E6%B3%95

Windowsの機能だけでやりたい。
次の2つが使えそうだと思った。

  • 同期センター(オフラインファイル)を使う方法
  • robocopyを使う方法

 
【同期センター(オフラインファイル)】

  • Vistaから追加された機能。
  • GUIで設定。
  • オフラインファイルについて各種設定をする時に使う。

 
【robocopy】

  • 機能自体はWindowsNT4.0(1986年発売)からあったが、当時は機能を使うためにWindows Resource Kitをインストールする必要があった。
  • OSの基本機能(追加インストール不要)として提供され始めたのはVistaから。
  • CUIで設定。

 
【同期センター(オフラインファイル)の動き】
ネットワーク上のファイルサーバの、フォルダAにファイルaがあり、それとは別にフォルダBがあるとする。
フォルダAをオフラインファイルとして設定する。
ネットワークから切断すると、
フォルダAは開くことができ、ファイルaも開くことができ、編集して保存できる。
ファイルaを編集して保存した場合、ネットワークが切断されている状態では、
ファイルサーバ上のファイルaは変更されない。
ネットワークに接続すると、約15秒ほどでファイルサーバ上のファイルaが同期された。
 
【まとめ】
同期センター(オフラインファイル)はノートPCを持ち運んだりなどで、ネットワークに接続切断を頻繁に行う時に便利。
robocopyの方が今回は目的通りのことができそう。
 
【robocopy設定記録】
ファイルサーバの特定のフォルダをZドライブ(ネットワークドライブ)として設定。
デスクトップ上にtestというフォルダを作成。
testフォルダの内容をZドライブのtestフォルダに同期する。
タイムスタンプも同じ内容にする。
test.batに書かれたコマンドを入力すると、
デスクトップ上のtestフォルダとファイルサーバ上のtestフォルダが同期される。
この同期を一定時間毎に実行すれば、結構良さそう。
タスクスケジューラから、batファイルを実行するようにすると、
実行されるたびにコマンドプロンプトの画面が出てきてしまうので、非表示にしたい。

test.batの内容

robocopy c:\users\test\desktop\test z:\test /mir /dcopy:t /copy:t 

次に画面を非表示にするためにVBScriptを使う。
【参考URL】
http://amaotolog.com/pc-benri/33

このURLを参考に次のファイルを作った。
test.vbs

set ws = createobject("wscript.shell")
 ws.run "cmd /c c:\users\test\desktop\test.bat", vbhide 

後はこのtest.vbsをタスクスケジューラに登録すれば良い。
登録は以下の通り。

①のタスクスケジューラを開いて、タスクスケジューラライブラリをクリック
②のタスクの作成をクリック。

タスクの名前を設定する。必要であれば説明も設定する。
次にトリガータブをクリックして、新規ボタンをクリック。
するとこの画面が出てくる。

タスクの開始は好きなように設定して、
繰り返し間隔にチェックを入れ、5分間なり15分間なりを選択して、
継続時間を無制限に設定してOKボタンをクリック。
重くなるかはわからない。重かったら頻度を考えれば良いはず。
次に操作タブをクリックして、新規ボタンをクリック。
するとこの画面が出てくる。

この画面で、
操作がプログラムの開始となっていることを確認して、
プログラム/スクリプトに「c:\windows\system32\wscript.exe」

引数の追加に「c:\users\test\desktop\test.vbs」を入力してOKボタンで完了。
この画面でタスクを右クリックして、実行するを選択すると実行されるので試すと良い。

無事実行された。

コメント

タイトルとURLをコピーしました