その他

Windowsでのバックアップ自動化:xcopyとタスクスケジューラを活用したNASへのデータバックアップ方法

パソコンの大切なデータを失わないようにするため、定期的なバックアップは非常に重要です。
この記事では、Windowsのコマンドラインツール「xcopy」を利用して、作業ディレクトリをNAS(Network Attached Storage)にバックアップする方法を解説します。また、Windowsのタスクスケジューラを設定し、このプロセスを自動化する手順も紹介します。

xcopyとは

xcopyは、Windowsに組み込まれているコマンドラインのファイルコピー・ユーティリティです。ファイルやフォルダを指定した場所にコピーすることができ、特に大量のファイルやディレクトリ構造をそのまま複製する際に有効です。

メリットとデメリット

メリット

  • ファイルやフォルダのバルクコピー(多数のファイルやデータを一括してコピー)が可能。
  • サブディレクトリを含むコピーが簡単に実行できる。
  • コマンドライン操作により、バッチファイルでの自動化が容易。

デメリット

  • グラフィカルなインターフェイスがないため、コマンドラインに慣れていない人には少し難しいかもしれない。
  • 最新のWindowsシステムでは、より進化したコピー方法があるため、場合によっては他のツールの方が適していることがある。

バッチコマンドの詳細説明

以下のバッチコマンドは、Windows環境で作業ディレクトリをNASにバックアップするためのスクリプトです。

rem dateを取得しバックアップ用ディレクトリ名YYYYmmddを設定
set day=%date:~0,4%%date:~5,2%%date:~8,2%

rem バックアップ元
set backupfrom="D:\workdir\docs"

rem バックアップ先ディレクトリ(NAS等)
set backupto="\\nasdir\backup"

rem バックアップ用ディレクトリ作成
mkdir %backuptF%\%day%

rem バックアップ開始
xcopy /e %backupfrom% %backupto%\%day%

exit

 
具体的な手順は以下の通りです。

  1. 日付の取得とディレクトリ名の設定:
    set day=%date:~0,4%%date:~5,2%%date:~8,2% このコマンドは、現在の日付から年(%date:~0,4%)、月(%date:~5,2%)、日(%date:~8,2%)を抽出し、それらを連結して「YYYYmmdd」形式の文字列を作成します。この文字列はバックアップディレクトリの名前として使用されます。
  2. バックアップ元の設定:
    set backupfrom=”D:\workdir\docs” このコマンドは、バックアップするファイルが保存されているディレクトリ(例えば D:\workdir\docs)を指定します。
  3. バックアップ先の設定:
    set backupto=”\\nasdir\backup” このコマンドは、バックアップデータを保存するNASのディレクトリ(例えば \\nasdir\backup)を指定します。
  4. バックアップ用ディレクトリの作成:
    mkdir %backupto%\%day% このコマンドは、backuptoで指定されたパスに、dayで生成された日付を名前とする新しいディレクトリを作成します。これはバックアップの各セッションを日付ごとに区別するためです。
  5. バックアップの実行:
    xcopy /e %backupfrom% %backupto%\%day% このコマンドは、backupfromディレクトリからbackuptoディレクトリの新しく作成された日付ディレクトリに、ファイルおよびサブディレクトリを含めてすべてコピーします。/eオプションは空のディレクトリも含めてすべてのサブディレクトリをコピーすることを意味します。
  6. スクリプトの終了:
    exit このコマンドはバッチファイルの実行を終了させます。

このコマンドを記述したバッチファイル(例:nasbackup.bat)を作成し、タスクスケジューラで使用します。

xcopyのその他オプション説明

xcopyコマンドは多くのオプションを持っており、これらを使い分けることで様々なコピー操作が可能です。

  • /S サブディレクトリを含めてコピーしますが、空のディレクトリは除外。
  • /E サブディレクトリを含め、空のディレクトリも含めてコピー。
  • /I コピー先にディレクトリが存在しない場合に、ディレクトリとして扱います。

Windowsタスクスケジューラ設定説明

Windowsタスクスケジューラを使用して、作成したバッチファイル(例:nasbackup.bat)を定期的に実行します。
具体的には、タスクスケジューラで新しいタスクを作成し、トリガーを設定して指定した時間に自動的にバッチファイルが実行されるようにします。定期的に実行する手順は以下の通りです。

  1. タスクスケジューラを開く
    スタートメニューをクリックし、「タスクスケジューラ」または「Task Scheduler」と入力して検索し、アプリケーションを開きます。
  2. 基本的なタスクの作成
    タスクスケジューラの右側の「アクション」パネルで、「基本的なタスクの作成」をクリックします。
    「基本的なタスクの作成ウィザード」が開きます。
  3. タスクの名前と説明を設定
    「名前」欄にタスクの名前を入力します(例: “デイリーバックアップ”)。
    「説明」欄にタスクの詳細を記述します(例: “NASに作業フォルダを定期バックアップ”)。
    「次へ」をクリックします。
  4. トリガーの設定
    いつタスクを開始するか選択します。例えば、「毎日」を選択して、「次へ」をクリックします。
    開始する時間と頻度を設定します。時間と日を選んで、「次へ」をクリックします。
  5. アクションの選択
    「プログラムの開始」を選択し、「次へ」をクリックします。
    「プログラム/スクリプト」の欄にバッチファイルのフルパスを入力します(例: “C:\backup\nasbackup.bat“)。
    「次へ」をクリックします。
  6. 条件と設定の確認
    バッチファイルの実行時に特定の条件を設定する場合、「条件」タブをクリックして必要な設定を行います。
    「設定」タブでその他のオプション(例: タスクの再起動、失敗時の挙動など)を設定します。
  7. タスクの完成と保存
    すべての設定が完了したら、「完了」をクリックしてタスクを保存します。
    タスクがリストに表示されることを確認し、必要に応じて「タスクの実行」をクリックしてテスト実行を行います。

 
このステップで、Windowsのタスクスケジューラを使用して任意のバッチファイルを自動で実行するタスクを設定することができます。バックアップのような定期的な作業に非常に便利です。

注意点

  • バックアップ先のNASがネットワーク上で常に利用可能であることを確認してください。
  • バッチファイルの実行権限に注意し、適切な権限が設定されているかを確認してください。

まとめ

xcopyとタスクスケジューラを使った自動バックアップは、大切なデータを定期的に安全に保管するための効果的な方法です。
この記事を参考に、ぜひ自分のバックアップ環境を構築してみてください。

 
※参考にされる場合は自己責任でお願いします。