SyncToy を使用してフォルダのバックアップを行う
概要
マイクロソフトから提供されている無償利用可能なバックアップツール「SyncToy」を使用してフォルダのバックアップを行います。
動作環境
動作確認環境
Windows バージョン |
|
SyncToy バージョン | 2.1 |
必須動作環境
Windows バージョン |
|
CPU | 1.0 GHz 以上 |
メモリ | 512 MB 以上 |
ストレージ空き容量 | 20 MB 以上 |
必須コンポーネント | Microsoft .NET Framework Version 2.0 再頒布可能パッケージ (x86) または Microsoft .NET Framework Version 2.0 再頒布可能パッケージ (x64) |
内容
フォルダのバックアップソフトは有償無償問わず多くのソフトウェアがありますが、今回使用する「SyncToy」は以下のような特徴があります。
- 無償で使用可能
- フォルダ単位でバックアップ
- 複数のフォルダを指定可能
- シンプルな画面で構成されており、マニュアル等を見なくても直観的な操作が可能
- フォルダの双方向同期、単一方向同期、上書きコピーを指定可能
- コマンドラインツールによるバックアップ処理が可能
- フォルダの存在確認による同期ではなく、ファイル操作追跡による同期処理のため高速なバックアップが可能。例えばファイル名を変えた場合、通常はバックアップ先でファイル名変更前のファイルを削除して、新しいファイル名でコピーを行うが、SyncToy の場合は、コピー先のファイル名を変える処理を行う。
- SyncToy は英語版のみ
インストール
「http://www.microsoft.com/downloads/details.aspx?FamilyID=c26efa36-98e0-4ee9-a7c5-98d0592d8c52&displaylang=en」のページにアクセスし、ページ下にある「Download」ボタンをクリックしてインストーラーをダウンロードします。
SyncToy は 32bit 版と 64bit 版の両方があるので、使用している OS の環境にあったものをダウンロードしてください。
ダウンロードしたインストーラーを実行します。
セットアップダイアログが表示されるので「Accept」ボタンをクリックします。
「Accept」ボタンをクリックします。
「I have read and understand the warning above」にチェックをつけ、「Next」ボタンをクリックします。
ライセンス契約をよく読み、許諾できる場合は「I Agree」にチェックを入れ「Next」ボタンをクリックします。
「Next」ボタンをクリックするとインストールが開始します。
インストールが完了したら「Close」ボタンをクリックして閉じます。
SyncToyの設定
インストールが完了したら「スタートメニュー」から「SyncToy 2.1」を選択して起動します。
SyncToy カスタマーフィードバックオプションのダイアログが表示されますが、特に何もなければ「OK」ボタンをクリックして閉じます。
SyncToy のウインドウが開いたら同期するフォルダを指定します。「Create New Folder Pair」ボタンをクリックします。
「Left Folder」にはコピー元のフォルダ、「Right Folder」にはバックアップ先のフォルダを指定します。
指定したら「Next」ボタンをクリックします。
コピー方法を指定します。コピーの方法は以下の通りです。
コピーの種類 | コピーの動作 |
---|---|
Synchronize | 作成、更新、削除、リネームがあったファイルを双方向で同期します。 |
Echo | Left Folder で作成、更新、削除、リネームがあったファイルを Right Folder へ反映させます。 |
Contribute | Left Folder で作成、更新、リネームがあったファイルを Right Folder へ反映させます。Right Folder にあるファイルが削除されることはりません。 |
フォルダペアの名前を設定します。なんでもかまいませんが、コマンドラインで指定する名前にも使用されます。
作成したフォルダペアは画面の左上に表示されます。フォルダペアを作成した時点ではまだファイルのコピーはされていないので、「Preview」ボタンを押してコピーされるファイルを確認することができます。
コピーされるファイルの一覧ではコピー動作やファイルサイズなどを確認することができます。
通常フォルダ内のファイルはすべてコピーされますが、左のチェックをはずして特定のファイルのコピーを除外することもできます。
画面の右下にある「Run」をクリックすると実際にファイルがコピーされます。プレビューせずに前の画面で直接「Run」ボタンを押して実行することもできます。
実際にファイルがコピーされ、進捗と結果が表示されます。
左のメニューから「All Folder Pairs」を選択すると、作成したフォルダペアの一覧が表示されます。ここで「Run All」ボタンをクリックすると全てのフォルダペアの同期を行うことができます。コピー対象外にしたいフォルダペアがある場合はフォルダペアの左にあるチェックを外します。
各フォルダペアを選択中は「Rename Folder Pair」「Dekete Folrder Pair」ボタンでそれぞれフォルダペアの名称変更、削除を行うことができます。
タスク スケジューラによる定期バックアップ
SyncToy 自体にはスケジューリングする機能はありませんが、コマンドラインから実行ができるので、Windows 標準搭載の「タスク スケジューラ」で定期バックアップを行うことができます。
スタートメニューから「アクセサリ → システム ツール → タスク スケジューラ」を選択して起動します。
タスク スケジューラが起動したら右の操作メニューから「基本タスクの作成...」をクリックします。
「基本タスクの作成ウィザード」ダイアログが表示されるのでタスクの内容がわかりやすいように「名前」と「説明」を入力します。
バックアップを行うタイミングを指定します。
バックアップを行うタイミングの詳細を指定します。前の画面で指定したトリガーによってここに表示される内容は異なります。
「プログラムの開始」にチェックを入れ「次へ」ボタンをクリックします。
「プログラム/スクリプト」に「"C:\Program Files\SyncToy 2.1\SyncToyCmd.exe"」と入力します(SyncToy のバージョンによってはフォルダが異なる場合があるので「SyncToyCmd.exe」ファイルがあるか確認してください)。パスはダブルクォーテーションで囲んでください。
「引数の追加 (オプション)」に「-R"<フォルダペア名>"」を入力します。単一のフォルダペアのみを実行する場合はフォルダペア名を指定しますが、すべてのフォルダペアの同期を行いたい場合は「-R」のみを指定します。
入力した内容を確認し「完了」ボタンをクリックします。後は、指定したスケジュールで自動的に同期が行われるか確認してください。
コマンドラインから実行時にコマンドプロンプトを表示しないようにする。
実際にタスク スケジューラでコマンドラインから実行すると、フォルダ同期時にコマンドプロンプトが表示されてしまうことが分かります。SyncToyのファイルコピーは非常に軽いので短い間隔でスケジュールしても問題ありませんが、コピー中にコマンドプロンプトが表示されてしまうのは結構目障りです。
ここではコマンドプロンプトが表示されないようにフォルダの同期を行う方法について説明します。
まずテキストフォルダを開き、以下のようなプログラムを入力します。
Set ws = CreateObject("Wscript.Shell")
ws.run """C:\Program Files\SyncToy 2.1\SyncToyCmd.exe"" -R""SyncTest""",vbhide
作成したテキストを「.vbs」の拡張子で保存します。ファイル名や保存フォルダ先は任意でかまいませんが、タスク スケジューラで定期的に使用しますので今後ファイルを動かさなくてもいい場所に保存してください。
また、以下のように -R のフォルダペア名を指定しない場合は、SyncToy で有効になっているフォルダペアすべての同期が実行されます。
Set ws = CreateObject("Wscript.Shell")
ws.run """C:\Program Files\SyncToy 2.1\SyncToyCmd.exe"" -R",vbhide
タスク スケジューラを開くと先ほど作成したタスクが表示されてますのでダブルクリックして詳細ダイアログを開きます。
「操作」タブを選択し、さきほど作成した操作をダブルクリックします。
「プログラム/スクリプト」に「wscript.exe」と入力し、「引数の追加 (オプション)」には先ほど作成した「.vbs」ファイルのフルパスを指定します。パスはダブルクォーテーションで囲んでください。これでコマンドプロンプトが表示されずにファイルの同期を行うことができます。
その他
フォルダペアで指定したフォルダには「SyncToy_xxxxxx.dat」というファイルが作成されます。SyncToy の同期で使用されるファイルなので削除しないようにしてください。