• ベストアンサー

robocopy失敗時のメール送信について

Windows Server 2012 r2を使用しており、 robocopyを使用してデータのバックアップを行いたいと思っています。 コマンドをタスクスケジューラに登録し、 深夜に起動したいのですが、 エラーが発生した場合のみ、メールが送信されるように考えております。 コマンド内にメール送信をスクリプトとして組み込むのも、 その他の方法でも構いませんので、 良い方法はありませんでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • skp026
  • ベストアンサー率45% (1010/2238)
回答No.1

robocopyそのものだけ登録するのではなく、 batファイルを登録し、その中でrobocopyを実行したり、 戻り値によって動作を変えることがおすすめです。 robocopyの戻り値の情報です。 https://ameblo.jp/nastrodon/entry-12189427087.html ERRORLEVELについての情報です。 http://d.hatena.ne.jp/simply-k/touch/20100812/1281653517 メールは以下のようなソフトが考えられます。 コマンドライン用メール送信ソフト バイナリ添付ファイルに対応 http://www.vector.co.jp/soft/win95/net/se269471.html たしか最初だけGUIから入力しておくと、 その後はコマンドラインから送信できます。 メールアカウントのパスワードは暗号化されて 保存されます。 smailは、 私もWindowsのエラーでメール送信に使ってます。 インターネットのメールにありがちな、 送信してはいけない文字を使ってしまうと、 文字化けはします。(あたりまえですが念のためです) 参考にならなかったらごめんなさい。

whiteve
質問者

お礼

ご回答ありがとうございました。 ご意見頂いた方向でスクリプトを組み立てることができました! こういった所で質問するのははじめてでしたが、 回答が付いたことが大変ありがたく感じました。 また機会がありましたらよろしくお願い致します。 参考までに、下記が私の書いたスクリプトは下記になります。 ※メールはPowerShellスクリプトを別途用意し、そちらを走らせてます --------robocopy.cmd------------ set LOGNAME=C:\Admin Tools\Log\robocopy_log_%date:~-10,4%%date:~-5,2%%date:~-2,2%.log set ORIGINAL_FOLDER="F:\Share" set BACKUP_FOLDER="\\192.168.xxx.xxx\XXX" net use \\192.168.xxx.xxx\XXXX /user:domain\username password robocopy.exe %ORIGINAL_FOLDER% %BACKUP_FOLDER% /COPY:DAT /FFT /XJD /XJF /TS /V /R:0 /LOG:"%LOGNAME%" /MIR /XC IF %ERRORLEVEL% gtr 8 GOTO NG IF %ERRORLEVEL% lss 8 GOTO OK :OK GOTO END :NG powershell Set-ExecutionPolicy RemoteSigned powershell -File "C:\Admin Tools\Mailsend_Backup.ps1" powershell Set-ExecutionPolicy Restricted GOTO END :END