none
タスク失敗の原因が分からない。 RRS feed

  • 質問

  • 2k3 SP2 testserverAという名前のサーバで以下のようなタスクを設定しています。
    copy "ネットワークドライブX(テストサーバBのドライブをマウントしている):\パスAAA\パスBBB\*.bak" "D(testserverのローカルドライブ):\パスccc\BACKUP" /y > log.log
    ※日本語の箇所は説明のために記載しています。

    このタスクが「0x1で失敗(=全くコピーされていないで終了している)する事がある」という現象に悩んでいます。

    上記を記載したバッチを、タスクで1日で12時と23時に動くようにしています。(つまり定期的にデータをコピーしています)

    バッチ自体を動かして理想通りに動いたので、タスクでスケジューリングしました。そのテストも成功し、本番運用で暫く(数ヶ月)運用しています。
    ところが、ここ何回か、タスクが失敗したり成功したりをしています。

    ・タスクの「前回の実行結果は0x1(無効な関数が呼び出されました)
    ・log.logは実行した時間でファイルスタンプも更新されているが中身は空白。(エラーも記載されていない真っ白な状態)
    ・ドライブはマウントされた状態になっている事は確認済み
    ・手動でタスクから実行すると問題なく成功。(ログも正常に記載される)
    ・タスク実行時のアカウントは変更していませんし、設定されているアカウントのパスワードも変わっていません。(念のため、再設定しましたが
    変化なし
    ・失敗する日もあれば、何も変更を加えなくても成功する日もある(成功する時は12時23時友に成功で、片方のみ失敗する事は今のところなし)
    失敗する日、成功する日のパターンが不明。
    ・testserverAでは同じアカウントで別のタスクも設定していますが、このタスクは失敗するタスクの30分前にスケジューリングされており、今のところ
    一度も失敗した事はない。内容はtestserverBから別のパスのデータをコピーしている。(数秒で終了する)
    ・testserverBは正常に稼動中。タスク実行時間のイベントログエラー警告一切なし。
    ・testA testBともテストサーバではありますが、別の誰か何かを操作したり、操作中という事は皆無とお考え下さい。

    失敗の原因がつかめず困っています。どういった視点から調査をすればいいのか、またどこが怪しいのかをご指摘頂きたくお願い致します。
    特にlog.logが空白で、タイムスタンプだけは実行した時間に更新されているというのが一番よくわかりません。

    以上どうぞよろしくお願い致します。
    2010年3月5日 4:50

回答

  • ネットワークドライブのマウントのタイミングかもしれませんね。UNC(\\servername\sharename)形式で指定するとか、コピーにリソースキットのrobocopyを使ってみるというのはどうでしょう?robocopyだとコピー実行時にログが出るので、もう少し詳細な状況が分かるかも知れません。

    あと、該当時間のイベントログに何か出ていませんでしょうか?
    Thanks, K.Kamegawa (http://d.hatena.ne.jp/kkamegawa/)
    2010年3月6日 8:11
  • チャブーンです。

    この件ですが、一応したのような調査は行なわれている、という前提でお話しします。

    Windows XP および Windows Server 2003 におけるスケジュールされたタスクのトラブルシューティング

    まず、「実際のバッチファイルのエラーメッセージ」を確認するのが重要です。エラーメッセージは [コマンド] 2> [出力ログ] というリダイレクトを行なわないと、記録されないですよ。標準出力といっしょに記載したい、というなら、

    [コマンド] > [出力ファイル] 2>&1

    としておくと、標準出力とエラー出力の両方が記録できるはずです。これで、ある程度の切り分けはできるのではないでしょうか?
    2010年3月7日 18:30
    モデレータ

すべての返信

  • ネットワークドライブのマウントのタイミングかもしれませんね。UNC(\\servername\sharename)形式で指定するとか、コピーにリソースキットのrobocopyを使ってみるというのはどうでしょう?robocopyだとコピー実行時にログが出るので、もう少し詳細な状況が分かるかも知れません。

    あと、該当時間のイベントログに何か出ていませんでしょうか?
    Thanks, K.Kamegawa (http://d.hatena.ne.jp/kkamegawa/)
    2010年3月6日 8:11
  • チャブーンです。

    この件ですが、一応したのような調査は行なわれている、という前提でお話しします。

    Windows XP および Windows Server 2003 におけるスケジュールされたタスクのトラブルシューティング

    まず、「実際のバッチファイルのエラーメッセージ」を確認するのが重要です。エラーメッセージは [コマンド] 2> [出力ログ] というリダイレクトを行なわないと、記録されないですよ。標準出力といっしょに記載したい、というなら、

    [コマンド] > [出力ファイル] 2>&1

    としておくと、標準出力とエラー出力の両方が記録できるはずです。これで、ある程度の切り分けはできるのではないでしょうか?
    2010年3月7日 18:30
    モデレータ
  • ご連絡が遅れまして申し訳御座いませんでした。

    ドライブのマウントは実はマウントしっぱなしでやっていました。当初そこが怪しいのでは?という話になり
    エラーが起きたい際に、マウント状態を確認したのですが、問題ありませんでした。

    イベントログからは何も分からない状態(エラー警告はなしです)ですので、教えていただいたrobocopyへバッチを修正する事を検討します。
    有難う御座いました。
    2010年3月12日 0:36
  • お礼が遅れまして失礼しました。

    エラー出力の出し方は知りませんでした。
    まず現状の状態でのログの出力方法を修正して様子を見てみたいと思います。
    どうも有難う御座いました。勉強になりました。

    2010年3月12日 0:41
  • こんにちは、フォーラムオペレーターの三沢健二です。

    kkamegawa さん、チャブーン さん、いつもアドバイスありがとうございます。

    案内いただいた内容が参考になられたとの事ですので、私の方で [回答としてマーク] を付けさせていただきました。
    よろしければ、その後の調査結果などお知らせいただけると嬉しいです。


    それでは、今後とも TechNet フォーラムをよろしくお願いします。

    ______________________________________
    マイクロソフト株式会社 フォーラム オペレーター 三沢健二

    2010年3月19日 8:35
    モデレータ