SyncToyとVBScriptで実現する!Windows自動データバックアップツールの作成方法
以前、Windows PCのバックアップやシステムイメージ作成に使えるさまざまなツールを紹介しました。システム全体の完全バックアップも重要ですが、本当に大切なディレクトリやファイルについては、もっと頻繁にバックアップを取りたいケースも多いはずです。特にIT業界では、クライアントが特定のディレクトリへデータを蓄積しており、そのデータを毎日、あるいは数時間おきに確実にバックアップしたいというニーズがよくあります。
これまでにも、ハードディスクのクローン作成、ファイル同期ツールの活用、PCとUSBドライブ間の同期など、多数のバックアップソリューションを取り上げてきました。いずれも優れた方法ですが、無料のサードパーティ製ソフトウェアの導入に慎重な環境や、Microsoft製品のみで運用したい企業では、こうしたツールを採用できないこともあります。
そこで本記事では、Microsoftが無償提供している「SyncToy」と、ごくシンプルなVBScriptを組み合わせて、データバックアップの一連の処理を完全に自動化する方法をご紹介します。
SyncToyで自動ファイルバックアップを設定する
Microsoft SyncToyは、フォルダ同士を「ペア」として登録し、ミラー複製や完全同期を実行できる無料ツールです(SyncToy 2.1の利用には.NET Frameworkが必要です)。ただし、バックアップを自動化する前に、まずコピー元のディレクトリとアーカイブの保存先をすべて登録しておく必要があります。
SyncToyを初回起動したら「Create New Folder Pair(新しいフォルダペアの作成)」をクリックし、左側(コピー元)フォルダと右側(コピー先)フォルダを指定します。セットアップの次のステップでは、同期の種類を選択します。
「Synchronize(同期)」は双方向のバックアップ方式です。左右どちらかのフォルダでファイルが新規追加・更新されると、その変更がもう一方のフォルダにも反映されます。一方「Echo(エコー)」は、左側フォルダの変更内容を右側フォルダへ一方向でミラーリングする方式です。特定のディレクトリをバックアップする目的であれば、「すべての変更をバックアップ先に反映させたい」のが普通ですので、通常はEchoを選べばよいでしょう。
今回ご紹介する定期実行ソリューションでは、4つのフォルダペアを設定します。各ペアは、一日の中の特定の時間帯に実行したいバックアップです。朝はあるフォルダを、昼は別のフォルダを…というように、時間帯ごとにバックアップ対象を切り替えます。
自動バックアップしたいフォルダの登録がすべて終わったら、次はSyncToyのコマンドライン機能を使ってSyncToyを起動するスクリプトを用意します。
SyncToy自動化スクリプトを設定する
これから紹介するVBScriptは、現在の時刻をチェックし、その時間帯に応じたコマンドを実行してSyncToyを起動し、適切なディレクトリをバックアップします。
仕組みはシンプルで、SyncToyで設定したフォルダペアの名前を呼び出すだけです。以下のスクリプトをメモ帳に貼り付け、「databackup.wsf」といった名前で保存してください。
<job>
<script language="VBScript">
Option Explicit
On Error Resume Next
Dim HourNow
Dim strHour
Dim WshShell
Dim strProgFiles
HourNow = Hour(Now())
set WshShell=CreateObject("WScript.Shell")
strProgFiles = WshShell.ExpandEnvironmentStrings("%PROGRAMFILES%")
Select Case HourNow
case HourNow >= 0 and HourNow < 7
WshShell.exec strProgFiles & "\SyncToy 2.1\SyncToyCmd.exe -R MorningFiles"
case HourNow >= 7 and HourNow < 13
WshShell.exec strProgFiles & "\SyncToy 2.1\SyncToyCmd.exe -R NoonFiles"
case HourNow >= 13 and HourNow < 19
WshShell.exec strProgFiles & "\SyncToy 2.1\SyncToyCmd.exe -R MailArchives"
case else
WshShell.exec strProgFiles & "\SyncToy 2.1\SyncToyCmd.exe -R EveningFiles"
End Select
WScript.Quit
</script>
</job>
このスクリプトは、実行中PCの時計をもとに現在の時刻を取得します。午前0時〜6時59分なら「MorningFiles」ペア、午前7時〜12時59分なら「NoonFiles」ペア、午後1時〜6時59分なら「MailArchives」ペア、それ以外の時間帯は「EveningFiles」ペアを同期する仕組みです。
タスクスケジューラで定期実行を設定する
あとは、このスクリプトを1日4回、それぞれの時間帯に起動するようWindowsのタスクスケジューラを設定するだけです。手順は簡単です。コントロールパネルから「管理ツール」を開き「タスクスケジューラ」を起動します(Windows 10/11ならスタートメニューの検索で「タスク スケジューラ」と入力しても開けます)。「タスクの作成」をクリックしましょう。
タスクに名前を付けたら「トリガー」タブを開きます。「スケジュールによるタスク」を選択し、「日毎」「開始時刻:午前3時」を指定します。さらに詳細設定で「6時間ごとに繰り返す」を有効にすれば、3時・9時・15時・21時にタスクが実行されます。
これらの実行時刻は、いずれもスクリプトに設定した4つの時間帯のどれかに含まれています。続いて「操作」タブを開き、ドロップダウンから「プログラムの開始」を選択して、保存したスクリプトの場所を指定します。
これで設定完了です!タスクスケジューラが1日4回この単一のスクリプトを起動し(複数のタスクを作成する必要はありません)、スクリプトが「SyncToyCmd.exe -R EveningFiles」のように、「-R」の後に指定したフォルダペア名付きでコマンドモードのSyncToyを起動してくれます。
スクリプトが正しく動作しているかは、SyncToyのログファイル「C:\Users\Owner\AppData\Local\Microsoft\SyncToy\2.0\SyncToyLog.log」で確認できます。
このログはSyncToyが実行されるたびに更新され、どのディレクトリがいつバックアップされたか、ファイル数やバックアップサイズなどの情報が記録されます。
このデータバックアップソリューションはいかがでしたか?重要なデータやフォルダを自動バックアップする別のおすすめの方法があれば、ぜひコメント欄で教えてください。
画像クレジット:Shutterstock
-
iPadのデータをバックアップする方法|iCloud・iTunesを使った2つの手順を徹底解説
iPadは私たちが思っている以上に日常生活に浸透しています。メッセージの送受信、音楽鑑賞、ゲーム、映画視聴、写真や動画の共有など、さまざまな用途で活用されており、仕事の重要なファイル、個人情報や金融情報、健康データの保存、さらには印刷用フォトアルバムの作成まで幅広く行われています。 では、iPadを紛失・破損・盗難してしまった場合でも、これらの大切なデータを確実に守るにはどうすればよいのでしょうか。答えはシンプルです。「データのバックアップを作成すること」。それ以外にありません。 あわせて読みたい:今すぐ買うべき便利なiPadアクセサリー9選 iPadをバックアップする2つのベストな方法 1.
-
データ監視ツール「Check Data Usage」でWi-Fi使用量を管理する方法
インターネットは、現代の生活において最も欠かせない存在と言えるでしょう。その利用形態は大きく分けて「モバイルデータ通信」と「Wi-Fi」の2種類があります。近年はWi-Fiプランのコストが大幅に下がり、世界中で誰もが無料のWi-Fiを利用できる方向へと進んでいますが、だからこそ使用量をきちんと管理する仕組みが必要です。本記事では、Systweak Softwareが提供する「Check Data Usage」といったデータ監視ツールを使って、Wi-Fiの使用量を効率的に管理する方法を詳しく解説します。 Check Data Usage:インターネット使用量を監視できる優秀なAndroidアプリ