Проблема в том, что я... Делаю это - во втором пинге выдается: «Сеанс SSH не активен». Быстрое решение — установить соединение -> ping, а затем установить второе соединение и пинг, но я хочу выполнить два ping за одно соединение.
Сейчас у меня есть этот код:
Сейчас у меня есть этот код:
Код: Выделить всё
import paramiko
import time
def connect_ssh(ip, username, password):
ssh = paramiko.SSHClient()
try:
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ip, 22, username, password, timeout=5)
return ssh, "OK"
except Exception as e:
return None, f"ERROR: {str(e)}"
def remote_ping(ssh, host):
try:
stdin, stdout, stderr = ssh.exec_command(f"ping {host}")
stdout.channel.recv_exit_status()
response = stdout.read().decode()
return "OK" if "Success rate is 100 percent" in response else "ERROR"
except Exception as e:
return f"ERROR: {str(e)}"
ip = '172.16.1.1'
username = 'a'
password = 'a'
ssh, result_ssh = connect_ssh(ip, username, password)
if ssh:
result_first_ping = remote_ping(ssh, '8.8.8.8')
result_second_ping = remote_ping(ssh, '8.8.4.4')
ssh.close()
else:
result_first_ping = "SSH_FAILED"
result_second_ping = "SSH_FAILED"
print(f"First ping result: {result_first_ping}")
print(f"Second ping result: {result_second_ping}")
Подробнее здесь: https://stackoverflow.com/questions/787 ... sh-session