[rancid] Re: Rancid Reports Changes in router.db when nochanges have been made
Schmidt, Daniel
dan.schmidt at uplinkdata.com
Tue Nov 10 20:57:17 UTC 2009
On ubuntu, it should be diff -U 4, which it is. (lines below
accidentally from old control_rancid)
< diff -U 4 routers.up routers.up.new > /dev/null 2>&1; RUP=$?
---
> diff -u -4 routers.up routers.up.new > /dev/null 2>&1; RUP=$?
rancid at che-rancid-001:~/var/Telco1$ diff -u -4
diff: `-4' option is obsolete; use `-U 4'
diff: Try `diff --help' for more information.
I can't seem to track this one down.
At the command line:
sed -e '/^#/d' -e 's/^ *//' -e 's/ *$//' -e 's/ *: */:/g' router.db |
sort -u > routers.db
perl -F: -ane '{($F[0] =~ tr at A-Z@a-z@,print $_) if ($F[2] !~ /^up$/i);}'
routers.db
Gives me just one device:
FIX_DIFF_BUG:cisco:down
But the old routers.up has every device with the exception of
FIX_DIFF_BUG. Hence, diff spits out a bunch of erroneous garbage about
stuff going up and down. So, the question is, as my routers.all is the
former routers.all:
Why do we get a different routers.all.new depending when called from
command line as opposed to when it is called as a cron job? Is my logic
flawed?
302 mv -f routers.all.new routers.all
-----Original Message-----
From: john heasley [mailto:heas at shrubbery.net]
Sent: Monday, November 09, 2009 3:26 PM
To: Schmidt, Daniel
Cc: rancid-discuss at shrubbery.net
Subject: Re: [rancid] Re: Rancid Reports Changes in router.db when
nochanges have been made
Thu, Nov 05, 2009 at 03:16:42PM -0700, Schmidt, Daniel:
> What is odd is that this only seems to do this when you rancid-run
from
> the command line when the previous run was from Cron. (or visa versa)
> Relevant code doesn't seem like much:
>
> 182 cut -d: -f1,2 routers.db > routers.all.new
>
> 189 perl -F: -ane '{($F[0] =~ tr at A-Z@a-z@,print "$F[0]:$F[1]\n")
> 190 if ($F[2] =~ /^up$/i);}' routers.db > routers.up.new
>
> 192 diff -u -4 routers.up routers.up.new > /dev/null 2>&1; RUP=$?
diff is the typical problem here. verify that the diff that you get
is one that supports these options expressed in this manner. everywhere
but linux, diffs accepts -u4.
> 194 if [ $RALL -ne 0 -o $RDOWN -ne 0 -o $RUP -ne 0 ]
> 195 then
> 196 (
> 197 if [ $RUP -ne 0 ] ; then
> 198 if [ ! -s routers.up ] ; then
> 199 echo Routers changed to up:
> 200 sed -e 's/^/ /' routers.up.new
> 201 echo
> 202 else
> 203 WCUP=`comm -13 routers.up routers.up.new | wc -l |
\
> 204 sed -e 's/^ *\([^ ]*\)/\1/'`
> 205 if [ $WCUP -gt 0 ] ; then
> 206 echo Routers changed to up:
>
> Term is set to network in rancid.conf, so I'm stumped as to how RUP or
> WCUP is nonzero on this.
> _______________________________________________
> Rancid-discuss mailing list
> Rancid-discuss at shrubbery.net
> http://www.shrubbery.net/mailman/listinfo.cgi/rancid-discuss
More information about the Rancid-discuss
mailing list