シンプルな定期バックアップ環境構築(WindowsServer)



Raidやメーカー製バックアップツールもいいのですが、
予算の都合やユーザ都合で
なるべくシンプルなバックアップを組まないといけない事、ありますよね。

そんなときおすすめなのが
タスクスケジューラ&バッチ処理。

バッチ部分はvbs+cmdで実装します。
Microsoftはcmdを廃止してPowerShellに移行したいようですが
現場によってはbatやvbsのが人口が多いなどの
政治的理由でまだまだPowerShellは使いにくかったりするのです。。。

今回の要件としては

・6世代分バックアップをとりたい(月曜~土曜)

・バックアップを実行するたびにバックアップ格納先を変更する

 (3台のディスクをローテーションさせる想定)

・エラーが発生したら管理者にメールを送る

を想定し実装します。

実装の流れとしては


1.bat作成

2.メール送信用vbs作成

3.bat呼び出し用vbs作成

4.タスクスケジューラ設定


となります。

順にざっくり解説します。

1.bat作成

まずはbat。詳細な説明は省略しますが
フラグ管理用のファイルを作成することで
ローテーション処理を実装しています。

このサンプルではBACKUPDESTDIR~に同じディスクを指定していますが
ここを編集することで異なるディスクにバックアップ先を変更できます。



DailyBackup.bat

2.メール送信用vbs作成

次にメール送信用vbs作成。

DailyBackup.batから引数をセットして呼ぶようにしています。



SendMail.vbs

3.bat呼び出し用vbs作成

こちらは単にDailyBackup.batを
バックグラウンドで呼ぶだけです。batを直接呼ぶと、
コマンドプロンプトが表示されてしまいます。
タスクスケジューラからbatを実行すると、結果として
いきなりコマンドプロンプトが表示される形となってしまいます。
ユーザを困惑させてしまいますので、ここではvbsからbatを呼び出しています。



DailyBatStart.vbs

4.タスクスケジューラ設定

最後にタスクスケジューラ。

タスクスケジューラから
「タスクの作成」を選択し
下図のようにタスクを設定してください。






※DailyBatStart.vbsを実行させたいのですが
直接vbsを起動できないので
wscriptに引数として渡す形で起動する必要があります。

以上でバックアップ環境構築完了です。

この記事を書いた人

アバター

ynarita

プログラム・サーバ・NWなどコンピュータ関連ならなんでも食べます。
ゲームをいくら積んでも崩れないゲーマーの河原在住。