Telnet введите команду и проверьте выводPython

Программы на Python
Ответить
Anonymous
 Telnet введите команду и проверьте вывод

Сообщение Anonymous »


def wait_for_prompt(ssh_канал, имя_подсказки, входная_строка, выходная_строка, выходная_конечная_строка): start_time = время.время() вывод = "" если входная_строка: print(f"Введите {input_string} и получите приглашение {prompt_name} через 10 секунд") ssh_channel.send(f"{input_string}\n") еще: print(f"Ожидание получения данных через 10 секунд") в то время как time.time() - start_time < 10: print(f"Ожидание 2 секунды") время.сон(2) если ssh_channel.recv_ready(): выходные_байты = ssh_channel.recv(4096) вывод += Strip_ansi_escape_codes(output_bytes.decode('utf-8')) если входная_строка и выходная_конечная_строка: условие = выходная_строка в выводе и вывод.strip().endswith(output_ending_string) elif input_string, а не output_ending_string: условие = выходная_строка в выводе elif выходная_конечная_строка, а не входная_строка: условие = выход.endswith(output_ending_string) еще: условие = Истина если условие: print(f"Получен требуемый вывод. Вывод:\n****\n{str(output)}\n*****") вернуть истину еще: print(f"Общий объем вывода: \n{выход}\n") print(f"Необходимый вывод еще не получен. Ожидание 1 секунды") время.сон(1) еще: print(f"Ожидание 1 секунды") время.сон(1) еще: print(f"Сдаюсь, общий объем вывода: ***{output}***") вернуть ложь Я создал эту функцию, которая принимает команду (input_string) и после выполнения проверяет, поступает ли output_string на вывод и должна ли она заканчиваться на output_ending_string

Вызовем его, как показано ниже:

output = wait_for_prompt(ssh_channel, "Имя пользователя: ", f"telnet {PDU_IP}", "", "Имя пользователя: ") Проблема в том, что в журналах я по какой-то причине дважды вижу приглашение «Имя пользователя», и оно не работает. Возможно, какая-то небольшая проблема. Пожалуйста помоги. Войдите ниже:
------------- Введите telnet 10.6.141.66 и получите имя пользователя: подскажите через 10 секунд. Ожидание 2 секунды Общий объем выпуска составляет: Вход в PX2 CLI Вход в PX2 CLI Имя пользователя: Имя пользователя: Еще не получил необходимый результат. Ожидание 1 секунды Ожидание 2 секунды Ожидание 1 секунды Ожидание 2 секунды Ожидание 1 секунды Ожидание 2 секунды Ожидание 1 секунды Если сдаться, общий объем производства составит: *** Вход в PX2 CLI Вход в PX2 CLI Имя пользователя: Имя пользователя: *** Traceback (последний вызов последний): Файл «/Users/akshjosh/Documents/projects/unified-perf-emix/misc/test.py», строка 93, в check_power_status('10.6.141.66', 'админ', 'админ', "13") Файл «/Users/akshjosh/Documents/projects/unified-perf-emix/misc/test.py», строка 74, в check_power_status поднять исключение (f «Произошло время ожидания») Исключение: произошел тайм-аут.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»