[rancid] Ignore differences in certain lines?
Aaron Wasserott
aaron.wasserott at viawest.com
Thu Jul 24 18:38:07 UTC 2014
I got it to work, at least capturing additional input. The main thing I did to fix it was -not- put my new command at the bottom of the list. I kept getting this error:
Completed device.company.com: End of run not found
Then after moving my new command up in the commandtable array it worked fine.
Any thoughts/ideas on how to not email out based on changes to certain output?
Thanks,
-Aaron
-----Original Message-----
From: Rancid-discuss [mailto:rancid-discuss-bounces at shrubbery.net] On Behalf Of Aaron Wasserott
Sent: Thursday, July 24, 2014 9:49 AM
To: rancid-discuss at shrubbery.net
Subject: Re: [rancid] Ignore differences in certain lines?
>> Trying to capture 'show interface status' output from Cisco IOS
>> switches, but ignore the output for diff purposes. Is that possible?
>> I guess it would have to be part of the mailer function to not send
>> output for certain lines.
>>
>>
>>
>> I copied the ShowVLAN sub-routine because it already appends ! in
>> front of the lines, so they are not considered config lines. But
>> right now I can't even get the output captured.
>>
>> This is the new sub I am using:
>>
>> # This routine parses "show interface status"
>>
>> sub ShowIntStat {
>> print STDERR " In ShowIntStat: $_" if ($debug);
>>
>> #($_ = <INPUT>, return(1)) if (!$DO_SHOW_INT_STAT);
>>
>> while (<INPUT>) {
>> tr/\015//d;
>> last if (/^$prompt/);
>> next if (/^(\s*|\s*$cmd\s*)$/);
>> return(1) if /^\s*\^\s*$/;
>> return(1) if /Line has invalid autocommand /;
>> return(1) if /(Invalid input detected|Type help or )/;
>> return(1) if /Ambiguous command/i;
>> # newer releases (~12.1(9)) place the vlan config in the normal
>> # configuration (write term).
>> #return(1) if ($type =~ /^(3550|4500)$/);
>> #return(1) if ($type !~ /^(2900XL|3500XL|6000)$/);
>> return(-1) if (/command authorization failed/i);
>> # the pager can not be disabled per-session on the PIX
>> if (/^(<-+ More -+>)/) {
>> my($len) = length($1);
>> s/^$1\s{$len}//;
>> }
>>
>> ProcessHistory("COMMENTS","keysort","IO","!INT: $_");
>> }
>>
>> ProcessHistory("COMMENTS","keysort","IO","!\n");
>> return(0);
>> }
> Did you add corresponding entries to @command in the rancid script to match your new sub? Just follow the existing pattern, it's obvious how it must work.
Yep I added this line to the commandtable in the rancid file.
{'show interface status' => 'ShowIntStat'},
It is picking it up, because if I rename the my sub-routine I see an error in the logs. So something inside the sub-routine is not parsing output right.
I'll play around with it some more.
Thanks,
-Aaron
_______________________________________________
Rancid-discuss mailing list
Rancid-discuss at shrubbery.net
http://www.shrubbery.net/mailman/listinfo/rancid-discuss
More information about the Rancid-discuss
mailing list