Paramiko, в функции складывать полученные занчения в отдельный файл
Есть файл cisco.txt там лежат 5 айпишников, Paramiko берёт оттуда адреса и коннектиться по ним. И вывод ifconfig складывает в один файл. Как сделать, что бы на каждый айпишник вывод ложился в свой отдельный файл а не в общий как сейчас.
import time
from datetime import datetime
import paramiko
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy)
file = open('C:/Users/sk/Desktop/Python3/12/cisco.txt', 'r')
for line in file:
# timestamps = str(datetime.now())
# print('Timestamp:', timestamps)
info = {}
info['ip'] = line.split(' ')[0]
# info['hostname'] = line.split(' ')[1]
def connector():
ip_log = 'Connecting to IP: ' + info['ip']
print(ip_log)
# hostname_log = 'Connecting to IP: ' + info['hostname']
# print(hostname_log)
client.connect(info['ip'], username='test', port=22,
key_filename='C:/Users/sk/Desktop/test/test')
try:
connector()
stdin, stdout, stderr = client.exec_command('ifconfig')
data = stdout.read() + stderr.read()
# time.sleep(1)
# print(data)
with open('C:/Users/sk/Desktop/Python3/12/result_cisco.txt', 'wb') as file:
file.write(data)
except Exception as e:
error_log = str(e)
print('error_log')
file.close()
Ответы (1 шт):
Автор решения: insolor
→ Ссылка
Можно в cisco.txt в каждой строке после ip добавить название хоста, потом это название включать в имя файла:
import time
from datetime import datetime
import paramiko
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy)
file = open('C:/Users/sk/Desktop/Python3/12/cisco.txt', 'r')
for line in file:
# timestamps = str(datetime.now())
# print('Timestamp:', timestamps)
info = {}
info['ip'], info['hostname'], *_ = line.split()
...
try:
...
with open(f'C:/Users/sk/Desktop/Python3/12/result_cisco_{info["hostname"]}.txt', 'wb') as file:
file.write(data)
except Exception as e:
error_log = str(e)
print('error_log')
file.close()