Для определения типа операционной системы (OS) по SSH, воспользуйтесь следующими подходами:
1. Определение типа OS по выводу команды "uname":
Один из распространенных методов - выполнение команды "uname" на удаленном сервере через SSH, и анализ ее вывода. Команда "uname" возвращает информацию о ядре операционной системы. Например:
import paramiko def get_os_type(hostname, username, password): client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) client.connect(hostname, username=username, password=password) stdin, stdout, stderr = client.exec_command("uname") os_type = stdout.readlines()[0].strip() client.close() return os_type # Пример использования hostname = "remote-server" username = "your-username" password = "your-password" os_type = get_os_type(hostname, username, password) print("Тип операционной системы:", os_type)
2. Использование библиотеки platform:
Модуль platform в Python предоставляет удобные функции для работы с информацией о системе. Вы можете использовать его для получения информации о типе OS. Например:
import paramiko import platform def get_os_type(hostname, username, password): client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) client.connect(hostname, username=username, password=password) stdin, stdout, stderr = client.exec_command("lsb_release -si") os_distro = stdout.readlines()[0].strip().lower() client.close() if os_distro == "ubuntu": os_type = "Linux" else: os_type = platform.system() return os_type # Пример использования hostname = "remote-server" username = "your-username" password = "your-password" os_type = get_os_type(hostname, username, password) print("Тип операционной системы:", os_type)
В обоих примерах вы будете выполнять команды на удаленном сервере, поэтому убедитесь, что у вас есть соответствующие привилегии и правильные учетные данные (имя пользователя и пароль). Какой именно подход выбрать, зависит от того, какая ОС интересует вас и какую информацию вы хотите получить о ней.