Robocopyでバックアップ/ミラーリングを行う
Robocopyはリモートのサーバ同士でフォルダを同期させる事が出来るコマンドです。
Windows2003ではResource Kitに同梱されておりますが、バージョンが古いので新しいバージョンを利用した方が良いです。
尚、Robocopyは『Robust File Copy』の略で、けしてロボットから来ているものではないです。
今回利用するRobocopyのバージョンはXP026で、古いバージョンはXP010となります。
XP010では『/DCOPY:T』が使えないなどがありますので、新しいバージョンを利用しましょう。
今回の仕様
・robocopy XP026を利用し、バックアップ元とバックアップ先をミラーリング。
・コピー(ミラーリング)に失敗しても再試行を行わない
・コピー(ミラーリング)は主にタイムスタンプを判定材料とする
・処理内容のログをYYMMDDhhmm.logとして吐き出す。
・処理後、ログファイルの内容を含めてメール送信
・メール送信ソフト(smail.exe)はc:\smail配下に設置を想定。変更が必要な場合は、パスを変更
準備
UtilitySpotlight2006_11.exeのダウンロード
以下のサイトからrobocopy XP026をダウンロードします。
http://technet.microsoft.com/en-us/magazine/2006.11.utilityspotlight.aspx※%windir%system32以下にrobocopy XP026がインストールされる。
※Windows2003の場合Resource Kitに同梱されているが、バージョンが古いので使わない。
SMAILのダウンロード
以下のサイトからsmail.exeをダウンロードします。
http://dip.picolix.jp/disp2.html※送信専用コマンドラインメールソフト
設置
・robocopy_backup.bat
※参照元:https://gist.github.com/t2psyto/5675962
@echo off rem パックアップパラメータ バックアップ元/先「SRC → DEST」 set SRC=C:\backup_data set DEST=\\server\share rem timestamp -> YYMMDDhhmm rem 時刻1桁のゼロ埋め ex) " 9:00" -> "09:00" set timetemp=%time: =0% set timesec=%timetemp::=% set now_date=%date:/=% set timestamp=%now_date%_%timesec:~0,4% rem ログファイル set LOGFILE=C:\backup_log\%timestamp%.log rem バックアップ実行 robocopy.exe %SRC% %DEST% /ZB /NFL /NDL /NP /LOG:"%LOGFILE%" /R:0 /W:1 /MIR /COPYALL /DCOPY:T /E rem /ZB : 再起動可能モードを使用し、アクセスが拒否された場合はバックアップモードを使用する rem /NFL : ファイル名をログに記録しない rem /NDL : ディレクトリ名をログに記録しない rem ※ /NFL /NDL 指定すると、正常コピーorスキップファイルは表示しない。 rem ※ エラーファイルorコピー先にのみ存在するファイルは表示する。 rem /NP : コピーの完了率を表示しない rem /LOG : ログファイルに状態を出力する(既存ファイルを上書く) rem /R:0 : コピーが失敗した場合の再試行数を指定する(既定値:1,000,000 回) rem /W:1 : 再試行の間の待機時間を指定する(既定値:30 秒) rem /MIR : ディレクトリツリーをミラー化する rem /COPY:Flag : ファイルにコピーする情報を指定する(既定値は/COPY:DAT) rem コピーフラグ D データ, A 属性, T タイムスタンプ, S セキュリティ(NTFS ACL),O 所有者情報, U 監査情報 rem /COPYALL : ファイル情報をすべてコピーする(=/COPY:DATSOU) rem /DCOPY:T : ディレクトリにコピーする情報を指定する(既定値は/DCOPY:DA) rem コピーフラグ D データ, A 属性, T タイムスタンプ rem /E : 空のディレクトリを含むサブディレクトリをコピーする rem /FFT タイムスタンプ精度を2秒としてコピーする(FATなどに利用) rem メール通知パラメータ set MAIL_FROM="robocopy_backup <robocopy_backup@example.com>" set MAIL_TO=backup@example.com set SMTPHOST=mail.example.com set SUBJECT="バックアップ通知 %timestamp%" rem メール通知コマンド(smail) rem require smail.exe ( http://dip.picolix.jp/disp2.html ) c:\smail\smail.exe -h%SMTPHOST% -f%MAIL_FROM% -s%SUBJECT% -F%LOGFILE% %MAIL_TO%
・プログラム内の「SRC(バックアップ元)」「DEST(バックアップ先)」を編集
・ログファイルの吐き出し先を編集
・メール通知パラメータを編集
ディスカッション
コメント一覧
まだ、コメントがありません