Python несколько сеансов Telnet
Мне нужно создать скрипт, чтобы получить вывод telnet как можно большего количества хостов и сохранить их в отдельный файл для каждого хоста. Скрипт должен работать как демон.
На данный момент у меня есть функция, которая инкапсулирует логику для сделать это для одного хоста сtelnetlib
, но я не знаю, как поступить. Я планировал открыть процесс (multiprocessing.Process
) для каждого хоста, но я подозреваю, что это будет пустой тратой ресурсов и должно существовать лучше :)
def TelnetLogSaver(hostname,ip,filename):
# open files and telnet sessions
f = open(filename,"a")
tn = telnetlib.Telnet(ip,23,TIMEOUT)
# login
e = tn.read_until("Login: ")
tn.write(USER+"\n")
# and password
e = tn.read_until("Password: ")
tn.write(PASSWORD+"\n")
# Connected. Start infinite loop to save messages log
while True:
e = tn.read_until(PROMPT,TIMEOUT)
if e is not "":
f.write(datetime.datetime.now().strftime("%Y-%m-%dT%H:%M:%S"))
f.write(e)
f.flush()
# avoid session timeout
tn.write("\n")
e = tn.read_until(PROMPT