[mrtg] Dealing with carriage returns and ^M characters returned by $sysdescr

Greg.Volk at edwardjones.com Greg.Volk at edwardjones.com
Wed Aug 3 17:46:48 MEST 2005

I am trying to incorporate the $sysdescr data into my MRTG configs to 
more information about a given device such as software version, etc. So 
I've been able to do this with non cisco devices (firewalls, proxies, 
filers, etc)
but when I attempt it with cisco IOS based devices, $sysdescr comes back
with a string that contains embedded carriage returns and/or ^M 

Normally I wouldn't care about these carriage returns and just let the 
formatting take care of it, but they make they end up making the config 
unusable because MRTG and 14all.cgi think that parts of the $sysdescr 
are config file directives which result in "line xxx doesn't make any 

Here's an example:

YLegend[mycisco-cpu]: Percentage CPU load
ShortLegend[mycisco-cpu]: %
Directory[mycisco-cpu]: mycisco
Legend1[mycisco-cpu]: Avg 1 min CPU Utilization in %
Legend2[mycisco-cpu]: Avg 5 min CPU Utilization in %
LegendI[mycisco-cpu]:  CPU Load:
LegendO[mycisco-cpu]:  CPU Load:
WithPeak[mycisco-cpu]: ywm
MaxBytes[mycisco-cpu]: 100
Options[mycisco-cpu]: growright, gauge, nopercent
Unscaled[mycisco-cpu]: dwmy
Title[mycisco-cpu]: mycisco CPU load
Target[mycisco-cpu]: at mycisco
PageTop[mycisco-cpu]: <H1>mycisco CPU load</H1>
    <TR><TD>System:</TD><TD>mycisco in comp_room</TD></TR>
    <TR><TD VALIGN="top">Description:</TD><TD>mycisco CPU load<br>Cisco 
Internetwork Operating System Software IOS (tm) c6sup2_rp Software^M
(c6sup2_rp-JSV-M), Version 12.1(22)E1, EARLY DEPLOYMENT RELEASE ^M
SOFTWARE (fc1) Technical Support: http://www.cisco.com/techsupport ^M
Copyright (c) 1986-2004 by cisco Systems, Inc.</TD></TR>

So MRTG and 14all.cgi get hung up in the Description section. They try 
to intrepret
"Internetwork", "(c6sup2_rp-JSV-M)", "SOFTWARE", and "Copyright" as 
directives since they are at the beginning of new lines.

I need to be able to strip out the carriage returns and ^M characters 
so that 
$sysdescr is one contigious line. I did that manually with one config 
and it worked 
fine. Can anyone think of a way to do this? I'd rather not go piping my 
through a bunch of sed ugliness, but if that's the only way around it 
then I'll
entertain the idea. Oddly enough I've only run into the problem with 
cisco IOS devices, 
everything else seems to have a MRTG friendly $sysdescr variable.

I've looked at the bad config files in a hex editor and the hex values 
0x0d (carriage return?) and 0x0a (^M character). If I could delete both 
of these
and replace them with space characters that would fix my problem. So 
far I
haven't been able to figure out how to do this in an automated fashion.

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