codeFlowType:
codeWrite
codeFlowLang:
Python
Напиши скрипт подключения к серверу А по ssh и запуску на нем команды ping до сервера Б. Если запрос от А до Б проходит то скрипт возвращает значение 1, если произошла ошибка выполнения на каком нибудь из шагов то скрипт возвращает 0.
Конечно! Ниже представлен пример кода на языке Python, который подключается к серверу А по SSH и запускает команду ping
до сервера Б. В зависимости от результата выполнения команды, скрипт возвращает значение 1 или 0.
Для работы с SSH в Python, мы можем использовать библиотеку paramiko
. Убедитесь, что она установлена, вы можете установить её с помощью команды:
pip install paramiko
Вот сам код:
import paramiko
def ping_server_a_to_b(server_a_ip, server_b_ip, username, password):
try:
# Создаем SSH клиент
client = paramiko.SSHClient()
# Загружаем системные ключи
client.load_system_host_keys()
# Добавляем ключ хоста автоматически
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# Подключаемся к серверу А
client.connect(server_a_ip, username=username, password=password)
# Выполняем команду ping
command = f'ping -c 4 {server_b_ip}' # Для Unix-подобных систем (Linux, macOS)
# Для Windows используйте: command = f'ping -n 4 {server_b_ip}'
stdin, stdout, stderr = client.exec_command(command)
# Читаем вывод команды
output = stdout.read().decode()
error = stderr.read().decode()
if error:
print(f"Ошибка выполнения команды: {error}")
return 0 # Возвращаем 0 в случае ошибки
print(output) # Вывод результата ping
return 1 # Успешное выполнение, возвращаем 1
except Exception as e:
print(f"Произошла ошибка: {e}")
return 0 # Возвращаем 0 в случае исключения
finally:
client.close() # Закрываем соединение
# Пример использования функции
result = ping_server_a_to_b('192.168.1.1', '192.168.1.2', 'username', 'password')
print(f"Результат: {result}")
'192.168.1.1'
на IP-адрес сервера А.'192.168.1.2'
на IP-адрес сервера Б.