SyncToy を使って2つのフォルダ間の同期を取る
僕の母艦 PC である Galleria XG には、合計6台の SSD・HDD を載せている。それらは2台1組で、計3組のペアにして、バックアップを取っている。
- SSD 1 (システムドライブ) → SSD 2 (データ部分のみのバックアップ)
- HDD 1 (ネットで拾ったデータ) → HDD 2 (バックアップ)
- HDD 3 (写真・動画データなど) → HDD 4 (バックアップ)
- HDD 5 (その他の個人データ) → HDD 6 (バックアップ)
といった具合だ。
コレまでは定期的に手動でコピーしていて、フォルダ数・ファイル数・全体のファイルサイズが一致していれば OK としていたのだが、リネームに対応したり、差異が発生した時の原因箇所を特定するのが大変だったりしていた。
そこで同期を自動化するソフトを探していたところ、Microsoft が出している SyncToy というツールを見つけたので、コレを紹介する。
目次
インストールと日本語化
SyncToy は現時点で v2.1 が最新版。以下の Microsoft のページからダウンロードできる。
- Download SyncToy 2.1 from Official Microsoft Download Center
SyncToySetupPackage_v21_x64.exe
(64bit 版)
本アプリは英語のみなので、ひとまず英語のままインストールを完了させる。
インストールが終わったら、次のサイトから日本語化パッチをダウンロードする
- SyncToy 日本語化パッチ フリーのバックアップソフト
synctoyjp_230918.zip
→SyncToyPatch_x64.exe
を取り出す
パッチの .exe
ファイルを SyncToy をインストールしたディレクトリにコピーして実行すれば、日本語化が完了する。
同期の手順
2つのフォルダ間の同期を取るには、はじめに「フォルダペア」というモノを作る。
- 最初に選択した「左側のフォルダ」が、原則「プライマリ」なフォルダとして認識され、
- 2番目に選択した「右側のフォルダ」が、「レプリカ」(バックアップを反映させる先) として認識される
一応、双方向の同期もできるが、「左側がマスター」のつもりでいた方が良い。
フォルダペアを作ったら、同期の仕方を選ぶ。選べるモードは次のとおり。
- 同期
- 両方のフォルダの差分をそれぞれで解決する
- 左右どちらのフォルダ内でも、コピー・リネーム・ファイル削除が発生しうる
- Echo
- 左側のフォルダをベースに、右側のフォルダでコピー・リネーム・ファイル削除が行われる
- 右側のフォルダにしかないファイルは削除され、左側のフォルダに反映されることはない
- 左側のフォルダには一切変更が入らない
- Contribute
- 左側のフォルダをベースに、右側のフォルダでコピー・リネームが行われる
- 右側のフォルダにしかないファイルは、削除はされないが、左側のフォルダに反映されることもない
- 左側のフォルダには一切変更が入らない
これらのモードはフォルダペア作成後にいつでも変更できる。
Echo と Contribute モードは「左側のフォルダ」が基準になるので、
- 普段は「Echo」で「左 → 右」への反映を行い、
- 時々念のため「同期」モードで「右にのみ存在するファイルがないか」をチェックする
という風にしてやれば、意図しないファイル削除を避けられるであろう。
フォルダペアと同期モードを設定したら、「プレビュー」(= Dry-Run) か「実行」が選べる。いきなり実行にはならず、プレビューが出来るのが良いところ。どのような変更が入るのか確認してから「実行」するようにすれば間違いないだろう。
同期した情報は各フォルダ直下のログファイルで保たれている。最終同期日時も分かるので、定期的なバックアップもやりやすい。
さすが MS 謹製。シンプルだが使いやすく、間違いを起こしにくい作りになっていて、とても便利なツールだ。僕の用途でのファイルバックアップはこのツールで自動処理させておけば良さそう。
- 参考 : Windows 10 データのバックアップはSyncToyが便利 | Tanweb.net
- 参考 : SyncToyの同期フォルダペア設定が全部消えてしまったのでバックアップから復活させた - Sakura scope
- フォルダペア設定ファイルの所在
- 参考 : GitHub - DBremen/PSSyncToy: PowerShell module to run MS SyncToy
- PowerShell から SyncToy を操作するツール