Skip to content

Instantly share code, notes, and snippets.

@t2psyto
Created May 30, 2013 06:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save t2psyto/5675962 to your computer and use it in GitHub Desktop.
Save t2psyto/5675962 to your computer and use it in GitHub Desktop.
backup script using robocopy with mail notify.
rem パックアップパラメータ バックアップ元/先「SRC → TARGET」
set SRC=\\server\share
set TARGET=D:\backup_data
rem timestamp -> YYMMDDhhmmss
rem 時刻1桁のゼロ埋め ex) " 9:00:00.00" -> "09:00:00.00"
set timetemp=%time: =0%
set timesec=%timetemp::=%
set timestamp=%date:/=%%timesec:~0,6%
rem execfilename -> このバッチファイルの名前(拡張子なし)
set execfilename=%~n0
rem ログファイル
set LOGFILE=d:\log\%timestamp%_%execfilename%.log
rem バックアップ実行
robocopy %SRC% %TARGET% /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 <anonymous@example.org>"
set MAIL_TO=anonymous@example.org,example.org
set SMTPHOST=mail.example.org
set SUBJECT="バックアップ通知 %execfilename% %timestamp%"
rem メール通知コマンド(smail)
rem require smail.exe ( http://dip.picolix.jp/disp2.html )
d:\tools\smail.exe -h%SMTPHOST% -f%MAIL_FROM% -s%SUBJECT% -F%LOGFILE% %MAIL_TO%
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment