Могу ли я создать скрипт для проверки возможности использования команд SSH и PING на сервере удаленно в python? - PullRequest
0 голосов
/ 21 января 2019

Могу ли я создать скрипт для проверки возможности использования команд SSH и PING на сервере удаленно в python?

1 Ответ

0 голосов
/ 21 января 2019

Хорошо, вот пример с Python3 и Linux. Просто имейте в виду, что на вашем целевом хосте / сервере должен быть запущен сервер SSH, чтобы SSH работал на этом компьютере.

Также есть много других способов сделать это ... также можно использовать встроенный модуль сокета.

Я использую попытку / исключение для проверки соединения и возможен ли SSH к данному хосту. Также имейте в виду, что если ваш IP-адрес или имя пользователя / пароль неверны, исключение также будет обнаружено.

Вот один из способов пинговать хост:

>>> from subprocess import Popen, PIPE
>>> cmd = ['ping', '-c', '5', '192.168.0.13']
>>> x = Popen(cmd, stdout=PIPE).communicate()[0]
>>> x
b'PING 192.168.0.13 (192.168.0.13) 56(84) bytes of data.\n64 bytes from 192.168.0.13: icmp_seq=1 ttl=64 time=0.035 ms\n64 bytes from 192.168.0.13: icmp_seq=2 ttl=64 time=0.033 ms\n64 bytes from 192.168.0.13: icmp_seq=3 ttl=64 time=0.029 ms\n64 bytes from 192.168.0.13: icmp_seq=4 ttl=64 time=0.028 ms\n64 bytes from 192.168.0.13: icmp_seq=5 ttl=64 time=0.030 ms\n\n--- 192.168.0.13 ping statistics ---\n5 packets transmitted, 5 received, 0% packet loss, time 4091ms\nrtt min/avg/max/mdev = 0.028/0.031/0.035/0.002 ms\n'

А вот пример SSH с Paramiko (да, порт должен быть целым):

import paramiko
import sys

username = ''
password = ''
command = 'ls -l'
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
    ssh.connect("192.168.0.13", 22, username, password)
except Exception as e:
    print("unable to SSH: %s" % e)
    sys.exit()
stdin, stdout, stderr = ssh.exec_command(command)
output = stdin.read()
ssh.close()
print(output)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...