satanicImephisto
2018-02-14, 19:34:40
Hallo zusammen,
ich hoffe einige Leute mit mehr Wissen als ich, können mir weiterhelfen.
Ich habe ein Python Script geschrieben, welches mittels Netmiko/Paramiko jeweils ein SSH Connect auf Cisco Devices durchführt und dort diverse Sachen auslesen, Konfig verändern usw. kann.
Zunächst hatte ich das Skript so geschrieben, dass aus einer Datei Zeilenweise die verschiedenen Variablen (IP Adresse, User, passwort usw.) ausgelesen werden und dann einfach bis zum Ende nacheinander abgearbeitet werden. Die Futterdatei sieht etwas so aus:
192.168.1.1, cisco, password, cisco_ios
192.167.1.1, cisco2, passwordA, cisco_ios
192.168.3.1, cisco, passwordB, cisco_ios_telnet
192.168.4.1, cisco3, passwordC, cisco_ios
Das dauert aber logischerweise zu lang (Device Anzahl befindet sich jeweils im 3 oder 4 stelligen Bereich).
Nun habe ich das Skript so umgeschrieben, dass ich in der Linux Shell einfach das Skript aufrufe und die Parameter für ein Device einfach dahinter schreibe, also:
./Skript.py 192.168.1.1 cisco password cisco_ios
Jetzt habe ich verschiedene Geschichten mir angeschaut, ich verstehe aber aber weder die os.fork Geschichte genug, noch die multiprocessing Geschichte. Ich find auch nicht den Trigger, wo ich limitieren kann wieviele gleichzeitige Sessions laufen sollen. Ich müsste ja eigentlich "nur" die Parameter auf die Linux Shell mit übergeben.
Folgendes Beispiel hab ich mal verunstaltet , um evtl. direkt aus der Futterdatei die Verbindungen aufzurufen. Aber an welcher Stelle muss ich den tatsächlichen Deviceaufruf ( "device = ConnectHandler(
device_type=Variable[3],ip=Variable[0],username=Variable[1],password=Variable[2],timeout=5)" )machen?
#!/usr/bin/env python3
import os
from netmiko import ConnectHandler
from netmiko.ssh_exception import NetMikoTimeoutException
from paramiko.ssh_exception import SSHException
datei=open("Futter.txt", "r")
for zeile in datei:
print (zeile)
Variable=zeile.split(',')
pid = os.fork()
if pid == 0:
print "%d just was created." % os.getpid()
else:
print "%d just created %d." % (os.getpid(), pid)
ich hoffe einige Leute mit mehr Wissen als ich, können mir weiterhelfen.
Ich habe ein Python Script geschrieben, welches mittels Netmiko/Paramiko jeweils ein SSH Connect auf Cisco Devices durchführt und dort diverse Sachen auslesen, Konfig verändern usw. kann.
Zunächst hatte ich das Skript so geschrieben, dass aus einer Datei Zeilenweise die verschiedenen Variablen (IP Adresse, User, passwort usw.) ausgelesen werden und dann einfach bis zum Ende nacheinander abgearbeitet werden. Die Futterdatei sieht etwas so aus:
192.168.1.1, cisco, password, cisco_ios
192.167.1.1, cisco2, passwordA, cisco_ios
192.168.3.1, cisco, passwordB, cisco_ios_telnet
192.168.4.1, cisco3, passwordC, cisco_ios
Das dauert aber logischerweise zu lang (Device Anzahl befindet sich jeweils im 3 oder 4 stelligen Bereich).
Nun habe ich das Skript so umgeschrieben, dass ich in der Linux Shell einfach das Skript aufrufe und die Parameter für ein Device einfach dahinter schreibe, also:
./Skript.py 192.168.1.1 cisco password cisco_ios
Jetzt habe ich verschiedene Geschichten mir angeschaut, ich verstehe aber aber weder die os.fork Geschichte genug, noch die multiprocessing Geschichte. Ich find auch nicht den Trigger, wo ich limitieren kann wieviele gleichzeitige Sessions laufen sollen. Ich müsste ja eigentlich "nur" die Parameter auf die Linux Shell mit übergeben.
Folgendes Beispiel hab ich mal verunstaltet , um evtl. direkt aus der Futterdatei die Verbindungen aufzurufen. Aber an welcher Stelle muss ich den tatsächlichen Deviceaufruf ( "device = ConnectHandler(
device_type=Variable[3],ip=Variable[0],username=Variable[1],password=Variable[2],timeout=5)" )machen?
#!/usr/bin/env python3
import os
from netmiko import ConnectHandler
from netmiko.ssh_exception import NetMikoTimeoutException
from paramiko.ssh_exception import SSHException
datei=open("Futter.txt", "r")
for zeile in datei:
print (zeile)
Variable=zeile.split(',')
pid = os.fork()
if pid == 0:
print "%d just was created." % os.getpid()
else:
print "%d just created %d." % (os.getpid(), pid)