Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- from paramiko import SSHClient, AutoAddPolicy
- class SSHManager:
- def __init__(self, host, username, password):
- self.host = host
- self.username = username
- self.password = password
- self.client = None
- def connect(self):
- try:
- self.client = SSHClient()
- self.client.set_missing_host_key_policy(AutoAddPolicy())
- self.client.connect(self.host, username=self.username, password=self.password)
- except Exception as e:
- raise RuntimeError(f"Erro ao conectar: {e}")
- def execute_command(self, command):
- try:
- _, stdout, _ = self.client.exec_command(command)
- return stdout.read().decode('utf-8')
- except Exception as e:
- raise RuntimeError(f"Erro ao executar comando: {e}")
- def close(self):
- if self.client:
- self.client.close()
- def ler_ips_do_arquivo(nome_arquivo):
- with open(nome_arquivo, 'r') as file:
- return [line.strip() for line in file.readlines()]
- def main():
- try:
- arquivo_ips = 'ips.txt' # Substitua pelo nome do seu arquivo de IPs
- arquivo_comandos = 'comandos.txt' # Substitua pelo nome do seu arquivo de comandos
- ips = ler_ips_do_arquivo(arquivo_ips)
- comandos = [line.strip() for line in open(arquivo_comandos, 'r').readlines()]
- total_roteadores = len(ips)
- roteadores_acessados = 0
- roteadores_nao_acessados = 0
- with open('relatorio.txt', 'w') as relatorio:
- for ip in ips:
- try:
- ssh_manager = SSHManager(ip, 'seu_usuario', 'sua_senha')
- ssh_manager.connect()
- resultados = [ssh_manager.execute_command(comando) for comando in comandos]
- roteadores_acessados += 1
- relatorio.write(f'{ip} - LOG OK\n')
- with open(f'ANTES_{ip}.log', 'w') as log_antes:
- log_antes.write(resultados[0]) # Supondo que o resultado do primeiro comando seja o log antes
- with open(f'DEPOIS_{ip}.log', 'w') as log_depois:
- log_depois.write(resultados[1]) # Supondo que o resultado do segundo comando seja o log depois
- ssh_manager.close()
- except RuntimeError as e:
- roteadores_nao_acessados += 1
- relatorio.write(f'{ip} - LOG NOK - {e}\n')
- relatorio.write(f'\nNúmero de roteadores: {total_roteadores}\n')
- relatorio.write(f'Roteadores acessados: {roteadores_acessados}\n')
- relatorio.write(f'Roteadores não acessados: {roteadores_nao_acessados}\n')
- except Exception as e:
- print(f"Erro: {e}")
- if __name__ == "__main__":
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement