Windows7にて、いざという時のためにファイルを自動的にバックアップさせる方法を紹介します。

前置き


まず、どうやって自動的にバックアップさせるかをざっくり説明します。

作業は、大きく分けて
・「ファイルをコピーするプログラムみたいなものを作る」
・「作ったプログラムを自動で実行させる」
の2つの手順になります。

会社でVMwareに仮想サーバーを構築して、その上でプログラムを動かしています。つい先日、仮想マシンが死にまして、バックアップをこまめに取っておく大切さを身を持って実感しました、

嘆いているところ、「グループポリシー + xcopy」で自動バックアップ出来るよと教えてもらったので、再発で泣く前にやってみました。
(ちなみに、Windows7だけでなくvistaやxpでもできます)

グループポリシーでシャットダウン時にxcopyを実行するようにする。ところで、そもそも、PCシャットダウン前にVMをshutdownしていれば、問題はまず起きない。 @bakorer 仮想マシンが死にました。自動でバックアップ取ってくれるサービスってありますか?less than a minute ago via web Favorite Retweet Reply



xcopyを実行するバッチファイルの作成


まず、ファイルをバックアップするコマンドを書いたバッチファイルを作成します。

xcopyでのファイルのバックアップはこの記事を参考にしました。
@IT:Windows TIPS -- Tips:xcopyでファイルをバックアップする

基本的な考え方としてxcopyのコマンドは、
xcopy 保存したいファイルやフォルダのパス 保存先のパス

という使い方をします。

VMwareの仮想マシンをコピーするバッチファイルは、 ファイル名:copy_vm.bat とします。バッチファイルの内容は以下のとおりです。
set logfile=C:\log\copyall.log
xcopy C:\Users\shigeoka\Documents\"Virtual Machines"\CentOS-5.6-i386 C:\Users\shigeoka\Documents\"Virtual Machines"\backup\CentOS-5.6-i386_backup\ /d /s /e /h /c /y /r >> %logfile%


グループポリシーでPCの終了時にバッチファイルの実行


次に、グループポリシーを使って、PCの終了時にバッチファイルを実行するようにしました。
@IT:Windows TIPS -- Tips:グループ・ポリシーを使って、コンピュータの終了時にコマンドを実行する

シャットダウン時に実行するスクリプトを指定するには、「グループ・ポリシー・オブジェクト・エディタ(gpedit.msc、以下、GPEditと略)」を起動して、ローカル・コンピュータの既定のポリシーに情報を追加します。

起動には、Windows7だと[スタート]-[プログラムとファイルの検索]で“gpedit.msc”と入力します。

シャットダウン時に実行されるスクリプトを設定する場所は、[ローカル コンピュータ ポリシー]-[コンピュータの構成]-[Windows の設定]の中にある、[スクリプト(スタートアップ/シャットダウン)]です。これを選択して、右側に表示される[シャットダウン]をダブルクリックします。

[シャットダウンのプロパティ]ダイアログから、[追加]→[参照]で、実行するファイルcopy_vm.bat を選択します。


これでPCをシャットダウンするときに指定したファイルやフォルダを自動でバックアップしてくれます。


【参考】
グループポリシーについて詳しく解説されている記事です。
システム設定とシステム・ポリシー - @IT

ITmedia エンタープライズ:Windows Tips「DOSプロンプトから「Program Files」などのフォルダにアクセスする2つの方法」

その他、VMwarePlayer用にバックアップするシステムがあるそうです。
NHM
VMware Playerのスナップショット管理ツール「NMH」: みズとおかズ