connect-and-execute
#!/usr/bin/env python
# coding: utf8
import os
os.system('cls')
#Connexion à un serveur distant en SSH et execution de commande via des arguments du script.
import paramiko
import requests
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-i", "--ip",
dest="ip",
help="L'ip à requeter",
type=str
)
parser.add_argument("-p", "--port",
dest="port",
help="Le port à requeter",
type=int
)
parser.add_argument("-s", "--service",
dest="service",
help="Le service à requeter",
type=str
)
args = parser.parse_args()
argsdir = dir(args)
# print(argsdir)
SERVER = '192.168.0.114'
PORT = '22'
USER = 'thomas'
KEY_PATH = '~/.ssh/id_rsa.pub'
PASSWORD = "thomas"
ssh_cnx = paramiko.SSHClient()
# ajout automatique aux serveurs connus
ssh_cnx.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# print(args.ip)
# print(args.port)
# print(args.service)
# ssh_cnx.connect(hostname=SERVER, port=PORT, username=USER, key_filename=KEY_PATH)
#ssh_cnx.connect(hostname=SERVER, port=PORT, username=USER, password =PASSWORD)
# ssh_cnx.connect(hostname=args.ip, port=PORT, username=USER, password =PASSWORD)
ssh_cnx.connect(hostname=args.ip, port=args.port, username=USER, password =PASSWORD)
ssh_stdin, ssh_stdout, ssh_stderr = ssh_cnx.exec_command('ls /tmp')
print(f"output : {ssh_stdout.readlines()}")
error = ssh_stderr.read()
print(f"err : {error} ")
ssh_stdin, ssh_stdout, ssh_stderr = ssh_cnx.exec_command('systemctl status apache2')
print(f"output : {ssh_stdout.readlines()}")
error = ssh_stderr.read()
print(f"err : {error} ")
ssh_stdin2, ssh_stdout, ssh_stderr = ssh_cnx.exec_command('systemctl status ssh | grep Active')
print(f"output : {ssh_stdout.readlines()}")
error = ssh_stderr.read()
print(f"err : {error} ")
ssh_stdin2, ssh_stdout, ssh_stderr = ssh_cnx.exec_command('systemctl status ' + args.service + ' | grep Active')
print(f"output : {ssh_stdout.readlines()}")
error = ssh_stderr.read()
print(f"err : {error} ")