置いてけぼり日記

はてなRSSに追加Add to GoogleMy Yahoo!に追加RSS Feed
TeraStationを用いたバックアップについて、その後のうちの状況。
以前はDOSのバッチで書いたシンプルなものだったのだけど、ウン十GBのファイルを扱うのは単純に時間がかかるのだが、TeraStationはソフトウェアRAID5だそうでアクセスはすんごく重いのが拍車をかけて、数時間回しっぱなしでもバックアップが終わらないというひでー状況だった。
なので、ちょっとばかり別のバックアップもできるようにしてみた。
てなわけで、オープンなバックアップツール for Windows Scripting Host
これはWSH上で動作するバックアッププログラム。しかもインタプリタ言語で書いてあるので、カスタマイズできる幅はそれなりにあると。
前回のバックアップ方法を参考にすると、こんな風なコマンドを記述してやるといい。

 Option Explicit

 Public FileSystemObject
 Set FileSystemObject = CreateObject("Scripting.FileSystemObject")

 Call SyncFile("c:\なんとか\かんとか","t:\backup\なんとか",False)
 Call SyncFile("c:\ほげほげ","t:\backup\ほげほげ",False)
 Call SyncFile("c:\がいあ\おるでが\まっしゅ","t:\backup\さんれんせい",False)

 WScript.Quit

こういうメインプログラムを書いたvbsを作っておけば、常に t:\backup へと必要なファイルをバックアップするプログラムになる。
このバックアップのいいところは、以前にコピーした内容と更新日付を確認しながら、新しくなったものだけコピーをしてくれる。しかも、消したファイルについてはバックアップ先にある以前にコピーしたファイルも消えるというもの。つまり、2回目以降はすこぶる処理が速くなる。
ただ、以前に保存していたものを復活させたいというのなら以前のバックアップ方法の方がよっぽど意味があるんだけど、1日〜数日単位のバックアップを行うなら、むしろこの方が効率は良い。

ちなみに、以前の方法みたいな履歴バックアップをしたい場合は、

 Option Explicit

 Public FileSystemObject
 Set FileSystemObject = CreateObject("Scripting.FileSystemObject")

 Dim path : path = "t:\" '←基本フォルダ

 path = path & Right("0000" & Year(Now),4) & _
   Right("00" & Month(Now),2) & Right("00" & Day(Now),2)

 Call CreateFolder(path)

 Call XCopyFile("c:\なんとか\かんとか",_
   FileSystemObject.BuildPath(path,"なんとか"),True)
 Call XCopyFile("c:\ほげほげ",_
   FileSystemObject.BuildPath(path,"ほげほげ"),True)
 Call XCopyFile("c:\がいあ\おるでが\まっしゅ",_
   FileSystemObject.BuildPath(path,"さんれんせい"),True)

 WScript.Quit

てな感じにすれば、プログラムを一発起動するだけで現在の日付を元にフォルダを作成して必要なファイルを一気にコピーするプログラムに早変わり。
プログラムの中身は FileSystemObject というCOMを利用したものであり、VBScriptじゃなくてもJavaScriptで書いてHTMLでデザインしたインターフェースを肉付けした、もっとそれらしいバックアップツールとして進化させることも可能なはずだ。
──まあ、うちはDOSプロンプトさえ見えていれば満足なので、これ以上にいじる気はさらさら無いんだけどね……。

検索キーワードTOP20