[rancid] "show env all" vs. "show env" on Cisco IOS

heasley heas at shrubbery.net
Thu Sep 3 20:48:15 UTC 2015

Thu, Sep 03, 2015 at 03:11:03AM -0400, Terry Kennedy:
>   I'm trying to monitor power supply / fan status on assorted Cisco gear.
> However, the Cisco CLI is inconsistent (so, what else is new?) across the
> various platforms.
>   Here is a brief summary (all running their respective latest IOS - 15
> for everything except the 4948, 3750 and 2651XM, which are running 12).
> "Expected output" indicates a full (for that platform) report, while any-
> thing else is the error message or one-line status:
>   Platform		    "show env all"		"show env"
>   ---------------------	    ------------------------	--------------------
>   Catalyst 4500X-16SFP+	    "Invalid input detected"	Expected output
>   Catalyst 4948-10GE	    "Invalid input detected"	Expected output
>   Catalyst 3750-48TS	    Expected output		"Incomplete command"
>   3845			    Expected output		Expected output
>   7206VXR / NPE-1	    Expected output		"All measured values
> 							are normal"
>   ASR1000		    Expected output		Expected output
>   2651XM		    Expected output		Expected output
>   ASA5506		    "Invalid input detected"	Expected output
>   Some platforms only accept "show env all", some only accept "show env",
> some accept both and produce identical output and some accept both and
> produce different output.
>   It seems that "the right thing" would be to try the "show env all" and
> only if that reports an error, try "show env". Simply sending both com-
> mands would seem to risk duplicate lines in the RANCID file for the cases
> where the device returns the same data for both commands, or a spurious
> "All measured values are normal" if it accepts both commands but returns
> different data.

there is code in ShowEnv to skip a second copy of the output if the first

>   I could clone the cisco device from rancid.types.base into multiple
> different sub-device types in rancid.types.conf, but that means a lot
> of extra work dealing with new RANCID versions. But that has the advan-
> tage of not having to parse wildly different output types in the same
> routine.
>   What would be great is if rancid.types.conf had an "inherit" state-
> ment that would let me include a device type from rancid.types.base
> and then let me add (or possibly remove) commands, something like this:
> cisco-env;inherit;cisco
> cisco-env;command;ios_local::ShowEnv_local;show env
> cisco-no-env;inherit;cisco
> cisco-no-env;nocommand;;show env all
>   Has anybody waded through this morass previously and come up with a
> good solution?

thats an interesting idea.  more grammar would be needed for commands that
are order dependant.

More information about the Rancid-discuss mailing list