From 8aaf0f8b167702dd2b8e4d7e01b33d5915cf4f3b Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Tue, 15 Mar 2011 18:29:51 -0400 Subject: change the cronjob so that the failure to find any (^err:|^alert:|^emerg:|^crit:) in the output from the puppet run doesn't leave us with a '1' return code from grep. On Debian Squeeze systems, this problem would result in cron reporting that the cron command failed with an exit status 1: /USR/SBIN/CRON[24107]: (CRON) error (grandchild #24108 failed with exit status 1) This was because grep returns a '1' if it fails to find a match. We don't want the failure to find failure messages to produce a failure, so this checks the return code of the grep and fixes it to be '0' if there were no such failure log messages. This is a bit ugly, if you ask me. We are already, unfortunately, swallowing the puppetd return code with the grep. It seems like these sorts of log messages should be retrieved via reports, logcheck, or something other than this grep of the output of the cronjob. --- manifests/cron/linux.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifests/cron/linux.pp b/manifests/cron/linux.pp index b3a10aa..5f8ac98 100644 --- a/manifests/cron/linux.pp +++ b/manifests/cron/linux.pp @@ -14,7 +14,7 @@ class puppet::cron::linux inherits puppet::linux { File['/etc/cron.d/puppetd.cron']{ source => undef, - content => "# run puppet\n$puppet_crontime root /usr/sbin/puppetd --onetime --no-daemonize --config=$puppet_config --color false $puppet_http_compression_str | grep -E '(^err:|^alert:|^emerg:|^crit:)'\n", + content => "# run puppet\n$puppet_crontime root /usr/sbin/puppetd --onetime --no-daemonize --config=$puppet_config --color false $puppet_http_compression_str | grep -E '(^err:|^alert:|^emerg:|^crit:)'; if [ $? -eq 1 ]; then exit 0; fi\n", before => Service['puppet'], } } -- cgit v1.2.3