wbadmin コマンドで世代管理バックアップ を実行する

 
文書番号:10052

Windows Server バックアップの GUI での設定では共有フォルダをバックアップ先に指定すると世代管理や複数のスケジュールを設定することはできません。

コマンドラインで実行するバッチファイルを作成し、タスクスケジューラに設定して実行できるようにしてみます。

【設定手順】

  • Windows Server バックアップを実行するコマンド
    サーバー全体をバックアップ対象に指定し、「\\192.168.0.1\Backup」フォルダに出力する例です。
    
    wbadmin start backup -backupTarget:\\192.168.0.1\Backup -allCritical -quiet
    
  • 上記コマンドでは実行するたびに上書きをしてしまいます。
    これでは世代でバックアップをとれないので曜日ごとに別のディレクトリに保存するようにしてみます。

    まず、曜日を取得するためのvbsファイルを作成します。
    テキストファイルに以下の内容を記載し、「weekday.vbs」というファイル名にします。
    
    WScript.Quit(WeekDay(Date))
    
  • バッチコマンド内で同じディレクトリ内に配置した上記のvbsを実行して曜日を取得し、実行した日の曜日フォルダにバックアップを取るようにしてみます。

    バックアップするディレクトリ内に「01.SUN」「02.MON」・・・「07.SAT」というフォルダを事前に作成しておきます。
    
    
    rem 実行ディレクトリを取得
    SET current_dir=%~dp0
    
    rem 曜日を取得する
    cscript /b %current_dir%weekday.vbs
        if %errorlevel%==7 set WEEKDAY=07.SAT
        if %errorlevel%==6 set WEEKDAY=06.FRI
        if %errorlevel%==5 set WEEKDAY=05.THU
        if %errorlevel%==4 set WEEKDAY=04.WED
        if %errorlevel%==3 set WEEKDAY=03.TUE
        if %errorlevel%==2 set WEEKDAY=02.MON
        if %errorlevel%==1 set WEEKDAY=01.SUN
    
    rem バックアップ保存先のディレクトリを設定
    SET DIR=\\192.168.0.1\backup\
    
    rem バックアップ保存先のディレクトリの中の曜日フォルダにバックアップを実行
    wbadmin start backup -backupTarget:%DIR%\%WEEKDAY% -allCritical -quiet
    
    
  • 上記のコマンドにログ出力も含めたサンプルです。
    共有フォルダへ事前にアクセスしてパスを通しておきます。
    
    cd \
    
    net use /DELET W:
    net use W: \\192.168.0.1\backup /user:ユーザー パスワード
    
    rem 実行ディレクトリを取得
    SET current_dir=%~dp0
    
    rem 曜日を取得する
    cscript /b %current_dir%weekday.vbs
        if %errorlevel%==7 set WEEKDAY=07.SAT
        if %errorlevel%==6 set WEEKDAY=06.FRI
        if %errorlevel%==5 set WEEKDAY=05.THU
        if %errorlevel%==4 set WEEKDAY=04.WED
        if %errorlevel%==3 set WEEKDAY=03.TUE
        if %errorlevel%==2 set WEEKDAY=02.MON
        if %errorlevel%==1 set WEEKDAY=01.SUN
    
    SET LOG=%current_dir%%WEEKDAY%.log
    SET DIR=\\192.168.0.1\backup\
    
    echo ==========================================  >%LOG%
    echo バックアップ開始 %DATE% %TIME%(%WEEKDAY%)>>%LOG%
    echo ========================================== >>%LOG%
    
    wbadmin start backup -backupTarget:%DIR%\%WEEKDAY% -allCritical -quiet >>%LOG%
    
    echo ========================================== >>%LOG%
    echo バックアップ終了 %DATE% %TIME%(%WEEKDAY%)>>%LOG%
    echo ========================================== >>%LOG%
    
    net use /DELET W:
    
    
    コマンドの書き方次第で柔軟なバックアップスケジュールを組むことができます。
    下記、TechNet のドキュメントも参考にしてみてください。

【参考情報】


[TechNet] Windows Server バックアップ コマンド リファレンス
https://technet.microsoft.com/ja-jp/library/cc770340(v=ws.10).aspx

[TechNet] Wbadmin バックアップの開始
https://technet.microsoft.com/ja-jp/library/cc742083(v=ws.10).aspx

[TechNet] コマンド ラインを使用してシステム状態のバックアップを作成する
https://technet.microsoft.com/ja-jp/library/cc753201.aspx