Windowsの特定フォルダのバックアップを自動化
バックアップってほとんどの場合、XCOPYでファイルのバックアップかNTバックアップで行っているのではないでしょうか?
少し変わった方法でやってみます。
用意するものはWindows XpのPowerToysにあるSyncToy
SyncToyの詳細はこちらで解説されています。
とにかくXCOPYより格段に使い勝手はよい。
英語版しか提供されていないのですが、GUIだし設定項目も少ない。
設定はコピー元とコピー先、コピー方法をしていするだけ。
詳しくは上の解説リンクを参照。
タスクを利用する事で自動的にバックアップも可能ですが、よくPCを使用している日中にバックアップを走らせたりするのも嫌だし、
ログオン時にバックアップされるのも嫌だったので、簡単なBATを作成しログオフスクリプトを組み合わせてシャットダウン時に
自動的にバックアップしてくれるようにしてみました。
ネットワーク上に存在するサーバに対してバックアップデータを保存しているのですが、社外等でログオフ、シャットダウンする時に
バックアップ処理が走るのも嫌なので、バッチ内で接続先サーバの生死をチェックし、生きていればバックアップをするようにした。
BATなんて組んだ経験少ないので、スマートな方法じゃないけど
- ログオフ時の実行BAT
ping "サーバアドレス" -n 1 | findstr /I Reply >nul
if errorlevel==1 goto end
cscript /b C:\WINDOWS\system32\GroupPolicy\User\Scripts\Logoff\sync.vbs
:end
pingをサーバに1回打って、帰ってきた応答結果の中にReplyがなければエラーなのでそのまま終了
Replyがあればスクリプトを実行させる。スクリプトを別に呼び出すのはBATから呼び出すと
バックアップ処理が終わらないうちにOSが落ちてしまったから。
- 呼び出されるスクリプト
Set ws = CreateObject("Wscript.Shell")
ws.run "C:\SyncToy\synctoy -R""mydocumentsback""",,true