Cisco switch menedzselése bash szkriptből

Cisco switch menedzselése bash szkriptből

A mai rövid cikkemben megmutatom, miként lehet Linux alól Cisco eszközöket menedzselni ssh-n keresztül, emberi beavatkozás nélkül. A példaszkriptben be fogunk lépni távolról egy Cisco switch-re, jogosultságot emelünk, majd meg fogunk pingetni egy távoli eszközt. Nem is a pingetésen van a hangsúly, hisz bármiyen más, bonyolultabb műveletet is elvégezhetünk így - a lényeg, hogy ezt miként lehet automatizálni :).
A szkript futtatásához szükséged lesz az alábbiakra:

  • Linux gépre telepített expect parancs
  • ssh engedélyezése Cisco eszközön

#!/bin/bash

ciscoip="IP CÍM HELYE"
ciscouser="FELHASZNÁLÓNÉV HELYE"
ciscopassword="JELSZÓ HELYE"
logfile=/var/log/cisco_ping.log
tmpfile=/tmp/cisco_ping.tmp

/usr/bin/expect << EOD > $tmpfile

set timeout 3000
spawn ssh -o StrictHostKeyChecking=no $ciscoip
expect "User:"
send "$user\n"
expect "ssword:"
send "$password\n"
expect ">"
send "enable\n"
expect "ssword:"
send "$password\n"
expect "#"
send "ping 8.8.8.8\n"
expect "#"
send "logout\n"
EOD

if [ $(grep "Success rate is 100 percent" $tmpfile | wc -l) -eq 0 ]; then
echo "$(date +%Y-%m-%d" "%T) $ciscoip router ping failed" >> $logfile
fi

exit 0