Ich habe ein kleines Framework gefunden, das von einem Ausländer geschrieben wurde, der Python zur Verwaltung von Cisco-Geräten verwendet und zum stapelweisen Ausführen von Befehlen verwendet werden kann.
Nach dem Herunterladen gibt es hauptsächlich 3 Dateien:
Systems.py definiert die Betriebssysteme einiger verschiedener Geräte und ihre allgemeinen Befehle.
Connectivity.py ist der Code, der hauptsächlich Funktionen implementiert. Tatsächlich verwendet es hauptsächlich das pexpect-Modul von Python.
Driver.py ist eine Beispieldatei.
[root@safe tratto-master]# cat drivers.py
#!/usr/bin/env python import Connectivity import Systems #telnet to a cisco switch m = Systems.OperatingSystems['IOS'] s = Connectivity.Session("192.168.1.1",23,"telnet",m) s.login("yourusername", "yourpassword") # if your need to issue an "enable" command s.escalateprivileges('yourenablepassword') s.sendcommand("show clock") s.sendcommand("show run") s.logout()
Das Obige ist der Inhalt des Beispiels drivers.py, das sehr einfach zu verwenden ist.
Wählen Sie zunächst eine Gerätesystemversion aus, in diesem Fall einen Cisco Switch, damit IOS verwendet wird. Die Gerätesysteme, die der Autor derzeit schreibt und die unterstützt werden können, sind:
OperatingSystems = {
'IOS': CiscoIOS,
'WebNS': CiscoWebNS,
'OSX': AppleOSX,
'SOS': SecureComputingSidewinder,
'AOS': ArubaOS,
'OBSD': OpenBSD,
}
Anschließend geben Sie IP, Port, Telnet oder SSH und schließlich die im vorherigen Schritt ausgewählte Systemversion ein. login Geben Sie die Anmeldeinformationen ein.
s.escalateprivileges sind privilegierte Anmeldeinformationen. so einfach~
Das Folgende ist ein Skript, das ich geschrieben habe, um einige Informationen über den Schalter abzurufen und sie dann in einer Datei zu speichern.
[root@safe tratto-master]# cat cisco.py
#!/usr/bin/env python # # Cisco Switch commands # By s7eph4ni3 # import Connectivity import Systems m = Systems.OperatingSystems['IOS'] iplist = ['192.168.1.1','192.168.1.2'] cmdlist = ['show ip int brief','show cdp nei detail','show arp','show ver'] for ip in iplist: if ip == '192.168.1.1': s = Connectivity.Session(ip,23,"telnet",m) s.login("", "passwd") else: s = Connectivity.Session(ip,22,"ssh",m) s.login("username", "passwd") s.escalateprivileges('enpasswd') f = open(ip+'.txt','w+') for cmd in cmdlist: a = s.sendcommand(cmd) f.write(ip+cmd+'\n') f.write(a+'\n') f.close() s.logout()