Konfigurationsbackup von mehreren Cisco Switches mit expect und tftp

Anforderung: Sicherung der Konfigurationen von mehreren Cisco-Switches automatisch ohne manuell sich mit jedem Switch verbinden zu müssen.

Man nehme 15 Cisco Switches.
Man nehme einen TFTP-Server und das Tool expect unter Linux.

Man erhalte die Konfigurationen gesammelt in einem Pfad – geordnet nach Switch-IP.

Das eigentliche Skript ist:

#!/usr/bin/expect

set arg1 [lindex $argv 0]
set tftp 192.168.0.3
set pass kennwort
set timeout 60

spawn telnet $arg1
expect "Password:"
send "$passn"
expect ">"
send "enn"
expect "Password:"
send "$passn"
expect "#"
send "show run | tee tftp://$tftp/$arg1.cfgn"
expect "n"
sleep 3
send "quitn"

Es wird aufgerufen mit skript.sh switch-ip

Bei sehr großen Konfigurationen oder langsamer Netzwerkanbindung muss das sleep im Skript erhöht werden.
Hat man mehrere Switche ruft man das Skript wie folgt aus:

for switche in {41..50}; do /usr/local/bin/cisco-backup.sh 192.168.0.$switche; done

Dies führt Skript mit 192.168.0.41-50 aus. Obligatorisch zu erwähnen, dass ein TFTP-Server auf 192.168.0.3 laufen muss. Häufig muss dieser mit dem Schalter

–create, -c
Allow new files to be created.

gestartet werden, sonst verteilt er nur Dateien.