Better logging for cronjob output using /usr/bin/logger

Posted by Stefan Lasiewski on Server Fault See other posts from Server Fault or by Stefan Lasiewski
Published on 2010-04-30T16:53:39Z Indexed on 2010/04/30 17:08 UTC
Read the original article Hit count: 299

Filed under:
|
|
|
|

I am looking for a better way to log cronjobs. Most cronjobs tend to spam email or the console, get ignored, or create yet another logfile.

In this case, I have a Nagios NSCA script which sends data to a central Nagios sever. This send_nsca script also prints a single status line to STDOUT, indicating success or failure.

0 * * * * root    /usr/local/nagios/sbin/nsca_check_disk

This emails the following message to root@localhost, which is then forwarded to my team of sysadmins. Spam.

forwarded nsca_check_disk: 1 data packet(s) sent to host successfully.

I'm looking for a log method which:

  1. Doesn't spam the messages to email or the console
  2. Don't create yet another krufty logfile which requires cleanup months or years later.
  3. Capture the log information somewhere, so it can be viewed later if desired.
  4. Works on most unixes
  5. Fits into an existing log infrastructure.
  6. Uses common syslog conventions like 'facility'
  7. Some of these are third party scripts, and don't always do logging internally.

UPDATE 2010-04-30

In the process of writing this question, I think I have answered myself. So I'll answer myself "Jeopardy-style". Is there any problem with this method?

The following will send any Cron output to /usr/bin//logger, which will send to syslog, with a 'tag' of 'nsca_check_disk'. Syslog handles it from there. My systems (CentOS and FreeBSD) already handle log rotation.

*/5 * * * * root    /usr/local/nagios/sbin/nsca_check_disk 2>&1 |/usr/bin/logger -t nsca_check_disk

/var/log/messages now has one additional message which says this:

Apr 29, 17:40:00 192.168.6.19 nsca_check_disk: 1 data packet(s) sent to host successfully.

I like /usr/bin/logger , because it works well with an existing syslog configuration and infrastructure, and is included with most Unix distros. Most *nix distributions already do logrotation, and do it well.

© Server Fault or respective owner

Related posts about cron

Related posts about logging