- PR -

cronのジョブ実行結果について

1
投稿者投稿内容
サキ
常連さん
会議室デビュー日: 2005/01/15
投稿数: 32
投稿日時: 2005-05-07 01:43
こんばんは

今回はcronについてお聞きしたく投稿させて頂きました。
------------------------
OS:RedHat9
------------------------
cronは登録しているジョブの実行結果を/etc/crontabに記されている
ユーザ(通常はrootだと思いますが)にメール通知していると思いますが、
これをsyslogに通知する方法をご存知ないでしょうか。
実行内容は/var/log/cronに出力されているのは確認とれているのですが・・・

誰かご存知の方がいらっしゃったら、何卒ご教授の程を宜しくお願い致します。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2005-05-07 01:46
こんばんわ.
引用:

トーンクラスターさんの書き込み (2005-05-07 01:43) より:

実行内容は/var/log/cronに出力されているのは確認とれているのですが・・・


ここまでお分かりなら,
/etc/syslog.conf を確認されたらよろしいのでは?
サキ
常連さん
会議室デビュー日: 2005/01/15
投稿数: 32
投稿日時: 2005-05-07 02:26
kaz様
毎回、誠にありがとうございます。


>ここまでお分かりなら,
>/etc/syslog.conf を確認されたらよろしいのでは?

/etc/syslog.confにはすでにcronのログとしてのレベル
はすべて選択になっています。

/etc/syslog.congのcronの内容
--------------------------------------------------------
〜省略〜
cron.* /var/log/cron
〜省略〜
--------------------------------------------------------

ですが、実行内容は/var/log/cronに出力されていて実行結果
(メールでcronのジョブが失敗した時の内容は)は出力されていません。

/var/log/cronのcronの内容
--------------------------------------------------------
〜省略〜
May 6 01:01:00 qqwe CROND[9111]: (root) CMD (run-parts /etc/cron.hourly)
May 6 02:01:00 qqwe CROND[9115]: (root) CMD (run-parts /etc/cron.hourly)
--------------------------------------------------------

ジョブが失敗した時のメール通知内容
--------------------------------------------------------
To: root@localhost.localdomain
Subject: Cron <root@rtst0725> /sbin/ccms_logkansho
X-Cron-Env: <SHELL=/bin/bash>
X-Cron-Env: <PATH=/sbin:/bin:/usr/sbin:/usr/bin>
X-Cron-Env: <MAILTO=root>
X-Cron-Env: <HOME=/>
X-Cron-Env: <LOGNAME=root>
Status: RO
/bin/bash: line 1: /sbin/ccms_logkansho: No such file or directory
--------------------------------------------------------

説明が不足して大変申し訳ございません。

何卒ご教授の程を宜しくお願い致します。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2005-05-07 03:45
つまり,成功/失敗の判定を syslog に書き込みたいのでしょうか?
それは「設定する」ことが困難ではないかと.
失敗した内容が一定かつ単純であればともかく,
全ての内容を全て判定して syslog に記すのは現実的ではないのでは?

むしろ,root に送られてくる e_mail を procmail に喰わせて,
そのうえでなんらかの処理をしたら如何でしょうか?
極端な話ですが,procmail を利用して logger で syslog に書くのも可能でしょうし.
例えば procmail で受け取った内容を script などで走査して
"No such file or directory" なんて語句が見つかったら
その内容を特定の file に書き出して,
その旨を syslog に書き込むとか...

いずれにせよ「設定で」というのは困難と考えます.
以上,ご参考までに.
サキ
常連さん
会議室デビュー日: 2005/01/15
投稿数: 32
投稿日時: 2005-05-07 23:11
kaz様
ご返答ありがとうございます。
ご連絡が遅くなり大変申し訳ございません

引用:
つまり,成功/失敗の判定を syslog に書き込みたいのでしょうか?
それは「設定する」ことが困難ではないかと.
失敗した内容が一定かつ単純であればともかく,
全ての内容を全て判定して syslog に記すのは現実的ではないのでは?



そもそもcronはなぜ実行内容と実行結果をログに出力させたり、mailで通知させたり
とわけているのでしょうか?ログだけに内容をはかせるのはやはり無理なのですよね?


引用:
むしろ,root に送られてくる e_mail を procmail に喰わせて,
そのうえでなんらかの処理をしたら如何でしょうか?
極端な話ですが,procmail を利用して logger で syslog に書くのも可能でしょうし.
例えば procmail で受け取った内容を script などで走査して
"No such file or directory" なんて語句が見つかったら
その内容を特定の file に書き出して,
その旨を syslog に書き込むとか...



また私の通知不足で、大変申し訳ありませんが、今回どうしてもサーバ上でsendmailを起動したくなく(mailを使わないようにしたいくて)
て、でもcronの実行結果が欲しくて、ならログにmailで通知してくる内容をログに出力する事はできないのかと言う
事なのです。

ありがとうございました。



kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2005-05-07 23:58
こんばんわ.
引用:

トーンクラスターさんの書き込み (2005-05-07 23:11) より:

そもそもcronはなぜ実行内容と実行結果をログに出力させたり、mailで通知させたり
とわけているのでしょうか?ログだけに内容をはかせるのはやはり無理なのですよね?


syslog で書き込む内容は,
ご覧になってわかるとおり,1行で表現されます.
なので,e_mail に書かれている内容を細分化することが必要になるかと.
引用:

また私の通知不足で、大変申し訳ありませんが、今回どうしてもサーバ上でsendmailを起動したくなく(mailを使わないようにしたいくて)
て、でもcronの実行結果が欲しくて、ならログにmailで通知してくる内容をログに出力する事はできないのかと言う事なのです。


なので,cron で実行されている内容を
それぞれ個別に処理して syslog に書き込むのは至難ではないかと.
技術的な問題ではなく,面倒だという意味です.

cron で e_mail に書き込む処理を,
個別に file に書き出すようにしたら如何でしょうか?
まずは「どのように e_mail に書き出されているか?」を確認して,
それを「e_mail でなく file に書き出す」ように変更したら,
ご要望を満たせるのでは?
その処理の過程で,書き出した内容を走査して,
error や warning を logger で書き込ませるとか.

こんな感じでドウでしょう?
1

スキルアップ/キャリアアップ(JOB@IT)