2007年11月18日

バックアップ2世代保存

HDDが危ない状況になったので、2世代保存を実装した。

お客様のバックアップは7世代(一週間)保存を提供していたが、自分のバックアップはHDDの使用量が多いこともあり、1世代しか保存していなかった。毎日フル・バックアップ上書きである。

以前にこの方法を公開しようと書いていたので、ここでそのバッチを公開する。バックアップする容量は130GB程度である。これでは7世代保存に1TBも要してしまう。また1週間前の状態に戻ることは考えにくいので2世代で320GBのHDDを使用する。このブログのバックアップも取得している。

考え方は
(1)2世代用のフォルダを準備する。(ODDとEVENとする)
(2)残り容量が15GB以下なら警告する。
(3)前回どちらのフォルダにバックアップを取得したかを示すファイルを準備する。(FolSelx)
(4)FolSelxの「x」は1なら「ODD」、2なら「EVEN」のフォルダにバックアップしたこと示す。
(5)このFolSelxの名前を判断し、1なら2に変更して「EVEN」のフォルダにバックアップを取得する。2なら1に変更して「ODD」のフォルダにバックアップを取得する。
(6)バックアップ・ソフトはいつもの「DriveImage XML」を使用する。
(7)就寝前にバックアップを取得するので、バックアップが終了したらPCの電源をオフにする。

(a.2)残り容量15GB以下なら警告するVBS
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
'File System
Set objDrive = objFSO.GetDrive("I")
'Drive情報取得
intdspGB = round(objDrive.AvailableSpace /(1024^3))
'残りスペースをGBに変換
if intdspGB < 15 then
WScript.Echo "使用可能スペースが " & intdspGB & "GB しかありません。大丈夫ですか?"
end if
(b.4567)RenameしてBackupを実行するバッチ
if exist I:\folderselect\SelFol2.txt goto selfol1
:selfol2
rename I:\folderselect\SelFol1.txt SelFol2.txt
set folder=even
echo %folder%
goto startbackup

:selfol1
rename I:\folderselect\SelFol2.txt SelFol1.txt
set folder=odd
echo %folder%
goto startbackup

:startbackup
"E:DriveImageXML\dixml.exe" /bC /t"I:\%folder%\C-Drive\Drive_C" /s /v
"E:DriveImageXML\dixml.exe" /bD /t"I:\%folder%\D-Drive\Drive_D" /s /v
"E:DriveImageXML\dixml.exe" /bE /t"I:\%folder%\E-Drive\Drive_E" /s /v
"E:DriveImageXML\dixml.exe" /bF /t"I:\%folder%\F-Drive\Drive_F" /s /v
"E:DriveImageXML\dixml.exe" /bG /t"I:\%folder%\G-Drive\Drive_G" /s /v

c:\Windows\System32\shutdown -s -f -t 5

これでC~Gドライブを2世代交互にバックアップするBatchが完成。


https://www.ktservices3.com/

投稿者 owner : 2007年11月18日