• ベストアンサー

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

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

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

  • ベストアンサー
  • skp026
  • ベストアンサー率45% (1011/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

関連するQ&A

  • robocopyの失敗について

    いつもお世話になっております。 robocopyで差分をコピーするよう設定しています。 ファイルサーバのバックアップとして使用しています。 ミラーオプションを追加し、外付けディスクにサーバと全く同じ状態にしています。 ただログを見ると、下記のように失敗が出てきます。 しかし/nflなどのスイッチを追加しても、エラーとなったファイルがどれなのか 出力されていません。 ------------------------------------------------------------------------------ 合計 コピー済み スキップ 不一致 失敗 Extras ディレクトリ: 138532 40 138492 0 0 8 ファイル: 1415056 708 1414348 0 0 108 バイト: 601.190 g 336.22 m 600.861 g 0 0 31.15 m 時刻: 1:18:13 0:01:15 0:00:00 1:16:58 失敗したファイルやフォルダをはっきりさせたいので、方法をご教授ください。

  • バッチファイル中の、Xcopyでエラー発生時にメールを送りたい

    お世話になります。 windows2003 server にて、バックアップを行うために xcopy コマンドを用いたバッチファイル(bkup.bat)を作り、 タスクスケジューラで定期実行できるようになりました。 問題は、バッチファイル内のXcopyコマンド実行中にエラーが 発生した場合のみ、 Blatj.exe コマンドなどを用いて、サーバ管理者にメールを 送信しようと考えていますが、術が分かりません。 一応、Xcopyがエラーにより途中で止まっても困るので c:\>xcopy /C オプションを付けて、エラーが発生しても コピーを続行するようにしています。 バッチファイル内の、Xcopyコマンドでエラーを検知し、 IF構文などで処理分岐させ、 エラー発生時のみ、Blatj.exe コマンドでメール送信する ことは可能でしょうか? どうかご教授お願いいたします。

  • robocopy でServer2003のエラー

    robocopy C:ディレクトリ \\server\コピー先 /MIR のように書いたファイルを拡張子を.bat にしてフォルダのバックアップをしたいと思ったのですが、Server2003で「アクセスが拒否されました」、「ディレクトリを作成できませんでした」のエラーとなりコピーができません。自分のPCから自分のPCのコピーであれば動きますが、サーバーには拒否されてしまいます。 他のコマンドも含めて解決方法を教えてください。 よろしくお願いします。

  • robocopyについて

    robocopyについて バッチコマンド robocopyについてです。 上記コマンドを用いて2008サーバーでバッチを作成したいのです。 条件は以下の通りでファイルをコピーするバッチの作成方法を教えてください。 コピー先にファイルがある場合は上書きメッセージを出さずに実行できるようにしたいです。 また、robocopyはcopyコマンドよりもコピーが早いとも聞いたことがあります。 そのへんも教えていただけるとすごく助かります。 コピー元 sever1\folder1\folder2\aaa.txt コピー先 sever2\folder13\folder4\aaa.txt どなたか詳しい方よろしくご教示願います。

  • robocopyを使用したい。バッチファイルをつくりたい。

    現在、大学の研究室のサーバ管理をやらせてもらっています。 サーバーのバックアップをとりたいのです。 PCが一台あまっていたこともあり、セカンダリーサーバーを立ち上げ、バッチファイルを作り、スケジューラーで読み込ませて、毎日バックアップをとりたいのですが、バッチファイル(WSH?)というものがいまいちよくわかりません。 自分は、大学の課題でCやC++を使用しただけで、それほど詳しくありません。 バッチファイルの書式、ルール、等々ネットで調べてもよくわかりません。 httpのように、ある程度ルールに従って書式が決まっているのでしょうか? それと、題名にも記しているようにrobocopyコマンドを使用してミラーリング(?)をしたいのです。 バッチファイルの書式、また、どこにrobocopyコマンドを記入すればいいのか、良い例題があれば教えてください。 お願いします。

  • タスクスケジューラとRobocopy

    Robocopyコマンドを用いて、タスクスケジューラにて、HDDのファイルを、USBメモリに、毎日バックアップするように設定しました。 USBメモリをみると、こちらの目論見通り、毎日更新されているようなのですが、前回の実行結果のところが、いつも0X1のエラー表示になって、他のタスクのように、「正常に終了しました」という表示になりません。 設定時には、トリガー、操作といったタブ項目は設定しましたが、条件、設定のタブ項目あたりは、何も触っていません。 どういった事象が考えられるでしょうか。このまま放置しておいても大丈夫でしょうか。詳しい方にお応えいただければ幸いです。

  • Win2K8 R2のタスクでバッチが動作しない

    Windows2008 R2のタスクスケジューラでバッチファイルが実行できない状態に陥っています。 環境・状況等は以下のとおりです。 ・バッチファイルを単体で実行させたときには、問題なく実行できる。 ・ネットワーク上のサーバのあるフォルダをrobocopyするジョブ。 ・タスクスケジューラから実行できている他のバッチファイルを流用して作成。(このジョブも別のサーバのバックアップをしている) ・実行結果は、0x1。 ・タスクスケジューラ登録時には、administratorで登録し、パスワードも入れている。 問題のバッチファイルを直接叩いたときには、何のエラーもなく、約3時間要するrobocopyでのバックアップが稼動しますが、 タスクスケジューラに登録して実行しようとすると、タスクスケジューラの履歴をみると、スタートはしているがすぐに終了して おり、バッチファイル内に記述したrobocopyが稼動していないようです。 バッチファイルの内容は ----------------------- @echo off set LOGFILE=c:\bat\fd_backup\backup.log date /t>%LOGFILE% echo 開始時刻>>%LOGFILE% time /t>>%LOGFILE% echo. >>%LOGFILE% echo Run backup.bat>>%LOGFILE% echo. >>%LOGFILE% ROBOCOPY \\server1\backup\ D:\BACKUP\server1-back\ /MIR /NP /FP /TS /COPYALL /TEE /R:0 /LOG+:%LOGFILE% echo. >>%LOGFILE% echo 終了時刻>>%LOGFILE% time /t>>%LOGFILE% ------------------------- もうひとつ登録してあるバッチファイルは、robocopyの全く同じコマンドで、対象としているサーバと保存先やログファイル名が 異なるだけで問題なくタスクとして稼動しています。 ネット上でいろいろと調べてチェックしてみましたが、おかしいところが見当たらず、困っています。 アドバイスよろしくお願い致します。

  • Robocopyで濁点などがエラーになる対策

    Robocopyを使ってミラーリングバックアップしています。その際に、ファイル名に「パ」「ダ」「ブ」などの文字を含むファイルが時々不正なファイル名として、「ハ?」「タ?」「フ?」と扱われ、コピーエラーとなります。 これらのエラーを発生させないような方法をご存知でしたら教えてください。 Windows7 Pro、64bit、を使用しています。よろしくお願いします。

  • 未送信メールを再送信したい

    メールを送信中にエラーが発生し、送信メールBOXに未送信として残っているメールが1通あります。 アカウントを2つ使用してますので、違うアカウントからのメールとして再送信したいのですが、未送信メールとして残っているメールの再編集ってどのようにすれば良いのでしょうか? 右クリックしても「再編集」のようなコマンドはありません。 携帯メールのように未送信メールの編集や未送信メールを引用したメールの作成というものはできないものなのでしょうか? ちなみにOSはWIN XPでソフトはOutlook Expressです。 補足が必要であればいたしますので宜しくお願いします。

  • robocopy /mirでOutlook Expressのバックアッ

    robocopy /mirでOutlook Expressのバックアップを行っておりますが少々おかしな点があります。 WindowsXPProマシンにて受信トレイbox.dbxや送信済みアイテム.dbxなどを毎日パソコンをログインする時(電源を入れてデスクトップ画面になる時&オートログインです)にrobocopy /mirでバックアップするようにしておりますが、送信済みアイテム.dbxのバックアップ速度がやたらと遅いのです。毎日ログインする時にバックアップしているので前日までのメールデータをバックアップすることになるわけですが、前日の送信済みメールが10件しかないのにです・・・・。 これは何故でしょうか?すいませんがよろしくお願いいたします。