[mrtg] include without require
Daniel J McDonald
dan.mcdonald at austinenergy.com
Fri Jun 3 14:16:18 MEST 2005
I have a fairly complex mrtg configuration, generated by a script, with
about 500 devices monitored. Each device is in a separate file, and
there is a master file with hundreds of Include: lines.
On occasion, I'll get a little out of sync, and there will be an
Include: statement for a file I have not yet generated. The MRTG_lib.pm
file issues a "die" in this case, and no stats are collected for the
other 499 devices.
What I'd like is the option to specify an optional include. Some of my
includes are mandatory - the one that contains the list of mibs to load,
for example - but for most of them, if the file is missing or
un-readable, spitting out a log-message that I can go back and look at
later is sufficient - I'd like the remainder to continue to function.
It seems to me that this patch to 2.12.1 would accomplish most of that:
--- MRTG_lib.pm~ 2005-05-16 15:45:26.000000000 -0500
+++ MRTG_lib.pm 2005-06-03 06:56:41.922264334 -0500
@@ -382,14 +382,16 @@
chomp;
my $line = $.;
if (/^include:\s*(.*?\S)\s*$/i){
+ $nextfile = $1;
+ if (-r $nextfile) {
push @filestack, $file;
push @handstack, $hand;
- $nextfile = $1;
local *FH;
open (FH, $nextfile)
|| open (FH, ($cfgfile =~ m#(.+)${MRTG_lib::SL}[^
${MRTG_lib::SL}]+$#)[0] . ${MRTG_lib::SL} . $nextfile)
|| do { die "ERROR: unable to open include file:
$nextfile\n"};
$hand = *FH;
+ } else {
+ warn "WARNING: unable to open include file: $nextfile\n";
+ }
next;
}
It doesn't provide for a mandatory include, but that would involve a
syntax change.
Thoughts?
--
Daniel J McDonald, CCIE # 2495, CNX
Austin Energy
dan.mcdonald at austinenergy.com
--
Unsubscribe mailto:mrtg-request at list.ee.ethz.ch?subject=unsubscribe
Archive http://lists.ee.ethz.ch/mrtg
FAQ http://faq.mrtg.org Homepage http://www.mrtg.org
WebAdmin http://lists.ee.ethz.ch/lsg2.cgi
More information about the mrtg
mailing list