Expect script help needed- skipping unavailable routers?
Hey all. Sometimes I'm tasked to change some router configs for the entire network (over 3,000 Cisco routers). Most of the time its a global config parameter so its done with a loop and an IP list as its the same configuration change for all routers. This is working OK.
However, sometimes an expect script must be generated for ALL routers since the config changes are different for each router. The way we approach it, we divide the routers per regional domains (6 in total), and produce 1 expect script per regional domain. The problem I'm having is that when I schedule these type of expect scripts to run via crontab, they usually get hung anytime a router fails to respond (maintenance, outage, etc). How can I make the script go to the next router if a router cannot be reached? Here's a sample line of the 20K lines:
Well, I am not even sure if its failing, cause at the other end I have a select call and it wakes up and reads the data I sent fine.
Ok here is the issue, I have a UDP socket(non blocking) through which I push some data to another port. At the other end I have select loop, waiting for this data.... (6 Replies)
Hello to all...this is my first post (so please go easy). :)
I feel pretty solid at expect scripting, but I'm running into an issue that I'm not able to wrap my head around. I wrote a script that is a little advanced for logging into a remote Linux machine and changing text in a file using sed.... (2 Replies)
I'm calling an expect script via a ksh script in cron and it is failing. The script runs fine if i run it manually. Does anyone know if it is an issue with compatibilty and if there is a way around it? (2 Replies)
This Expect script provides expect with a list of IP addresses to Cisco IPS sensors and commands to configure Cisco IPS sensors. The user, password, IP addresses, prompt regex, etc. have been anonymized. In general this script will log into the sensors and send commands successfully but there are... (1 Reply)
Solaris 10 Server refuse to connect :wall:
fork: Resource temporarily unavailable , server unexpectedly unavailable network connection , refuse error, disconnect message, fatal error type2, (protocol error type2)
Issue has been resolved after taken few steps :b:
First of all need to check... (1 Reply)
Hi,
Am very new to expect scripting..
Can You please suggest me how to call an expect script inside another expect script..
I tried with
spawn /usr/bin/ksh
send "expect main.exp\r"
expect $root_prompt
and
spawn /usr/bin/ksh
send "main.exp\r"
expect $root_prompt
Both... (1 Reply)
I have an expect script called remote that I want to call from inside my expect script called sudoers.push, here is the code that is causing me issues:
set REMOTE "/root/scripts/remote"
...
log_user 1
send_user "Executing remote script as $user...\n"
send_user "Command to execute is: $REMOTE... (1 Reply)
Dear All,
I have a requirement where I have to SFTP or SCP a file in a batch script. Unfortunately, the destination server setup is such that it doesn't allow for shell command line login. So, I am not able to set up SSH keys. My source server is having issues with Expect. So, unable to use... (5 Replies)
Hy guys,
My name is Alex, i am new here and I hope to find some answers. I am trying to run a expect script to telnet to a mikrotik router, run a command (export), and save the output of that commant to a file (outputfile.txt). The problem is that only part of the output is saved to... (2 Replies)
I'm fairly new to scripting so this might not be possible.
I am using Expect with Cisco switches and need to capture the string after finding the expect request. For example, when I issue "show version" on a Nexus switch, I'm looking to capture the current firmware version:
#show version
... (0 Replies)
Discussion started by: IBGaryA
0 Replies
LEARN ABOUT DEBIAN
rancid_intro
rancid_intro(1) General Commands Manual rancid_intro(1)NAME
rancid_intro - introduction to the Really Awesome New Cisco confIg Differ
INTRODUCTION
rancid is really more than just a Cisco configuration differ. It handles several different device's configurations; currently including
Alteon, Arista, Bay Networks (Nortel), Cisco, Extreme, F5 BigIP, Force10, Fortinet, Foundry, HP Procurve switches, Hitachi, Juniper Routers
and edge (ERX) routers, Lucent TNT, MRTd daemon, Netscalar load balancers, Netscreen firewalls, Procket, Redback, SMC switches, Zebra
routing software, and the ADC-Kentrox EZ-T3 mux.
rancid uses an expect script to login to each of a list of devices and run a set of commands for that device-type and collects the output.
The output is run through some filtering to summarize, reformat, and/or snip unwanted or security related data such as chassis temperature
and easily reverse-able passwords.
Named after the device's name in the group's configuration file (router.db), the resulting files are saved in the directory
<group>/configs. Except for the data filtered from the configuration file for security reasons, such as reversable passwords, these files
are suitable for loading directly to restore a lost configuration. See rancid.conf(5) for more information on <group>s.
After filtering, a uni-diff (see diff(1)) of the result is produced for each of the devices in a group against that of the previous run of
rancid and is e-mailed to that group's mail list, "rancid-<group>". This e-mail will also include any differences of the device list in
the group's configuration file, router.db.
Lastly, all the updated files are checked into the revision control system (CVS or Subversion).
Additional utilities, including a looking glass, come with rancid. See rancid's share directory ( share/rancid).
EXAMPLE E-MAIL
Below is a sample of a uni-diff produced from the group "shrubbery" for the device named dfw.shrubbery.net, which happens to be a Cisco
GSR.
From: rancid
To: rancid-shrubbery@shrubbery.net
Subject: shrubbery router config diffs
Precedence: bulk
Index: configs/dfw.shrubbery.net
===================================================================
retrieving revision 1.144
diff -u -4 -r1.144 dfw.shrubbery.net
@@ -57,14 +57,8 @@
!Slot 2/MBUS: hvers 1.1
!Slot 2/MBUS: software 01.36 (RAM) (ROM version is 01.33)
!Slot 2/MBUS: 128 Mbytes DRAM, 16384 Kbytes SDRAM
!
- !Slot 6: 1 Port Gigabit Ethernet
- !Slot 6/PCA: part 73-3302-03 rev C0 ver 3, serial CAB031216OL
- !Slot 6/PCA: hvers 1.1
- !Slot 6/MBUS: part 73-2146-07 rev B0 dev 0, serial CAB031112SB
- !Slot 6/MBUS: hvers 1.2
- !Slot 6/MBUS: software 01.36 (RAM) (ROM version is 01.33)
!Slot 7: Route Processor
!Slot 7/PCA: part 73-2170-03 rev B0 ver 3, serial CAB024901SI
!Slot 7/PCA: hvers 1.4
!Slot 7/MBUS: part 73-2146-06 rev A0 dev 0, serial CAB02060044
In this example, we see that a Gigabit Ethernet linecard was removed from slot 6. However, since this data is collected from "show"
commands on the router, it could just as easily be that the card crashed so the RP can not communicate with it to collect information.
GETTING STARTED
Installation instructions are included in the distribution's top-level directory in the README file (which will be installed in
share/rancid). Once the installation is complete, start by reading the man pages listed below or follow the basic instructions included in
the README file.
See http://www.shrubbery.net/rancid for information on new versions, mail lists, etc.
ADDING NEW GROUPS
Follow this procedure for adding new groups:
o Update the LIST_OF_GROUPS variable in etc/rancid.conf (see rancid.conf(5)).
o Run rancid-cvs(1).
o Update the system's mail aliases file /etc/aliases (see rancid.conf(5)).
SEE ALSO clogin(1), cloginrc(5), control_rancid(1), lg_intro(1), rancid(1), rancid-run(1), rancid.conf(5), router.db(5)
14 july 2009 rancid_intro(1)