rsyncとvshadowを使用したWindowsワークステーションの自動バックアップ-パート1

ワークステーションを最も「保護された」状態に維持し、このプロセスを可能な限り「自動化」したい場合は、この投稿が役立ちます。



使用されます:



ビットバッチファイル

Linuxサーバーのビット

Windows Server 2008 R2とグループポリシーの一部



アイデアは次のとおりです-ユーザー自身からは気づかないうちに、作業を中断させないように、データの損失をなくすためにプロファイルの毎週のコピーを作成し、最も保護された形式でサーバーに保存します。



これを行うには、クライアント側から始めます。 シャドウボリュームの作成-拡張を使用して、Outlook pstやドキュメントなど、ユーザーが開いた読み取り不能ファイルの問題を排除します。 vshadowを含むMicrosoftキットが必要です。これは、Microsoftサーバーhttp://www.microsoft.com/download/en/details.aspx?displaylang=en&id=23490から無料でダウンロードできるVolume Shadow Copy Service SDK 7.2です。このSDKのvshadow.exeおよびvshadow.pdbファイルが必要です。 注意-64ビットシステムと32ビットシステムでは異なります。



インストール後、次の場所にあります。



64ビット-%PROGRAMFILES%\ Microsoft \ VSSSDK72 \ TestApps \ vshadow \ bin \ obj-chk \ amd64

32ビット-%PROGRAMFILES%\ Microsoft \ VSSSDK72 \ TestApps \ vshadow \ bin \ release-xp



Windows用のcwrsyncのファイルセットも必要です-http://sourceforge.net/projects/sereds/files/cwRsync/4.2.0/cwRsync_4.2.0_Installer.zip/download



インストール後、次の場所にあります。



%PROGRAMFILES%\ cwRsync \ bin



すべてのファイルを1つのフォルダーに入れ、便宜上「バックアップ」という名前を付け、この「デスマシン」を実行するファイルの作成を開始します。実際、これはすべてのアクションを実行する単純なバッチファイルです。 便宜上「backup.cmd」と呼びましょう



ファイルに書き込みます:



(未知の魔法)



setlocal

if NOT "%CALLBACK_SCRIPT%"=="" goto :IS_CALLBACK

set SOURCE_VOLUME=C:

set DESTINATION_VOLUME=O:

set CALLBACK_SCRIPT=%~dpnx0

set TEMP_GENERATED_SCRIPT=GeneratedVarsTempScript.cmd

%~dp0\vshadow.exe -nw -p -script=%TEMP_GENERATED_SCRIPT% -exec=%CALLBACK_SCRIPT% %SOURCE_VOLUME%

del /f %TEMP_GENERATED_SCRIPT%

goto :EOF

:IS_CALLBACK

setlocal

call %TEMP_GENERATED_SCRIPT%

%~dp0\vshadow.exe -el=%SHADOW_ID_1%,%DESTINATION_VOLUME%








「パスタコード」のこの部分は、C:でシャドウボリュームのコピーを作成し、O:に接続します。これをコピーに使用し、同じスクリプトで削除します。 rsyncアクションを担当する部分は次のとおりです。



(未知の魔法)



setlocal

SET CWRSYNCHOME=C:\Backup\ ( rsync vshadow)

SET CWOLDPATH=%PATH%

SET CYGWIN=nontsec

SET PATH=%CWRSYNCHOME%;%PATH%

SET HOME=:\Backup\LOG\ ( )

SET RSYNC_PASSWORD=( , rsync)

SET MY_NAME=%computername%



( , )



SET FS_SRC_HOME="/cygdrive/O/Users/" ( , "Users")

SET FS_SRC_BCK="/cygdrive/C/Backup/" ( rsync, )



del /q :\backup\log\*.log ( )



()



rsync -av --chmod=ug=rwx %FS_SRC_B2% backupusr@hostname::sbackupusr/%MY_NAME%

rsync -avhP --inplace --stats --del --modify-window=1 --log-file=%FS_SRC_BCK%DATA/backupwork.log --exclude-from=%FS_SRC_BCK%DATA/exclude %FS_SRC_HOME% backupusr@hostname::sbackupusr/%MY_NAME%/snapshot/

rsync -av %FS_SRC_BCK% backupusr@hostname::sbackupusr/%MY_NAME%/snapshot/Backup/








最初のコマンドは、コンピューター名%computername%のディレクトリを作成します

2番目のコマンドでは、一時的に接続されたドライブO:\ Usersからデータをコピーし、ログファイルを保存します。

3番目のコマンドでは、ログとプログラム自体の安全のために、フォルダーC:\ Backup全体をコピーします。



この行「backupusr @ hostname :: sbackupusr」は、受信側のユーザーと受信側のホストを示します。 (2番目のpstoで考慮される)。



その後、O:ドライブを切断する必要があります。そうしないと、次回vshadowがそこにコピーを接続できなくなり、ユーザーフォルダー内のファイルにもかかわらず、コピーは常に古いO:\ドライブから作成されます。長い間変更されています。



(未知の魔法)



SET HOME=%HOMEDRIVE%%HOMEPATH%



VSHADOW.EXE -ds=%SHADOW_ID_1%








上記で説明したように、これらすべてを通常の.cmdファイルに入れて、rsyncファイルとvshadowファイルが保存されているBackupフォルダーに保存し、必要に応じて実行する必要があります。 Windows Vista、Windows 7、Windows XP、32ビットおよび64ビットで動作



PS:もちろん、ホストマシンを上げる必要があります。この場合は* nixに基づいており、サーバー盗難の場合にtrue-cryptで保護されるパーティションを作成します。 また、将来的には、このフォルダをmsiインストーラにパックして、グループポリシーを介してすべてのワークステーションにインストールし、スケジュールされたタスクを作成して、ユーザーのバックアップフォルダへのアクセスを閉じることができます。 しかし、それは別の話です。



All Articles