Skip to content

Instantly share code, notes, and snippets.

@fapestniegd
Created September 1, 2009 21:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fapestniegd/179421 to your computer and use it in GitHub Desktop.
Save fapestniegd/179421 to your computer and use it in GitHub Desktop.
#!/bin/bash
DEVICES=("ASA01" "ASA02" "CS-ASA01")
CYCLADES=("hydra.example.net" "hydra.example.net" "tiamat.example.net")
PORTNUMBER=("7001" "7002" "7001")
ENABLEPASS=("obfuscated" "obfuscated" "obfuscated")
PAGERCMD=("terminal pager" "terminal pager" "terminal pager")
for idx in `seq 0 $(expr ${#DEVICES[@]} - 1)`;do
cat<<EOF | /usr/bin/expect | \
awk '{ \
if($0~"!-- END --!"){on=0;} \
if(on){print $0;} \
if($0~"!-- BEGIN --!"){on=1;getline;getline;getline;} \
}' | tee ${DEVICES[${idx}]}.txt
set DEBUG 0
set timeout 300
spawn /usr/bin/ssh admin:${PORTNUMBER[${idx}]}@${CYCLADES[${idx}]}
send "\r"
expect {
"<--- More --->" {
send "q"
exit;
}
"${DEVICES[${idx}]}>" {
send "enable\r"
expect "Password:"
send "${ENABLEPASS[${idx}]}\r"
expect "${DEVICES[${idx}]}#"
}
"is being used by" {
exit;
}
"${DEVICES[${idx}]}#" {
}
}
# Disable Paging
send "conf t\r"
expect "${DEVICES[${idx}]}(config)#"
send "${PAGERCMD[${idx}]} 0\r";
expect "${DEVICES[${idx}]}(config)#"
send "end\r";
expect "${DEVICES[${idx}]}#"
send "!-- BEGIN --!\r"
expect "${DEVICES[${idx}]}#"
send "show failover\r";
expect "${DEVICES[${idx}]}#"
send "show run\r";
expect "${DEVICES[${idx}]}#"
send "!-- END --!\r"
# Re-Enable paging
expect "${DEVICES[${idx}]}#"
send "conf t\r"
expect "${DEVICES[${idx}]}(config)#"
send "${PAGERCMD[${idx}]} 24\r";
expect "${DEVICES[${idx}]}(config)#"
send "end\r";
expect "${DEVICES[${idx}]}#"
send "exit\r";
exit;
EOF
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment