Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 12, 2015 23:18:59

kotofey
Зарегистрирован: 2015-08-12
Сообщения: 2
Репутация: +  0  -
Профиль  

Глупый вопрос по поводу цикла

Прошу помощи в корректности состовления цикла. Почему-то туплю и не могу понять как правильно сделать.

Суть написанного ниже - при запуске собирать данные со всех серверов и записывать в файл
в списках server_ip - хост сервера, code_server - пароль. Никак не додумаю как правильно составить цикл. Надеюсь на подсказку сообщества.

server_ip = ('', '', '')
code_server = ('', '', '')
a = 0
b = 0
for x in server_ip:
    host = server_ip[a]
    print(a)
    for z in code_server:
        pwd = code_server[b]
        print(b)
    user = 'user'
    port = 22
    client = paramiko.SSHClient()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    # Подключение
    client.connect(hostname=host, username=user, password=pwd, port=port)
    stdin, stdout, stderr = client.exec_command('uptime', get_pty=True) # добавить get_pty=True
    time.sleep(1)
        # Читаем ответ сервера
    data = stdout.read() + stderr.read()
    client.close()
    d = datetime.now()
# Записываем ответ сервера в файл
    save_changes = open('log.txt', 'ab')
    save_changes.writelines(d.strftime('time: ' + '%H:%M:%S ' + 'date: ' '%d-%m-%y'+ '\n'))
    save_changes.writelines(data)
    save_changes.close()
    b += 1
    if b <= 2:
        continue
    else:
        break
    a += 1
    if a <= 2:
        continue
    else:
        break
print('Соединение закрыто, данные записаны в файл.')

Офлайн

#2 Авг. 12, 2015 23:32:55

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Глупый вопрос по поводу цикла

Я так понял что вам нужно сопоставить хост сервера и его пароль в один проход цикла?

for host, code in zip(server_ip, code_server):
    # some code



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Авг. 12, 2015 23:33:59

kampella
Зарегистрирован: 2014-11-21
Сообщения: 95
Репутация: +  1  -
Профиль   Отправить e-mail  

Глупый вопрос по поводу цикла

server_ip = ('', ‘', ’')
code_server = ('', ‘', ’')

это в словарь

server_ip = ('', '', '')
code_server = ('', '', '')
hosts = dict(zip(server_ip, code_server))
    user = 'user'
    port = 22
for host, pwd in hosts.items():
    client = paramiko.SSHClient()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    # Подключение
    client.connect(hostname=host, username=user, password=pwd, port=port)
    stdin, stdout, stderr = client.exec_command('uptime', get_pty=True) # добавить get_pty=True
    time.sleep(1)
        # Читаем ответ сервера
    data = stdout.read() + stderr.read()
    client.close()
    d = datetime.now()
# Записываем ответ сервера в файл
    save_changes = open('log.txt', 'ab')
    save_changes.writelines(d.strftime('time: ' + '%H:%M:%S ' + 'date: ' '%d-%m-%y'+ '\n'))
    save_changes.writelines(data)
    save_changes.close()

Офлайн

#4 Авг. 13, 2015 09:18:04

kotofey
Зарегистрирован: 2015-08-12
Сообщения: 2
Репутация: +  0  -
Профиль  

Глупый вопрос по поводу цикла

Спасибо за помощь!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version