Я пытаюсь добиться некоторой автоматизации с помощью Python и Paramiko (с моей базовой логикой новичка).
Код ниже, я рад сказать, работает.Пока я не добавлю команду 'rm -f testtrace.pcap, чтобы удалить файл после его загрузки через sftp.
Определить учетные данные для входа в систему
host = input("Host: ")
user = input("User: ")
port = 22
password = getpass("Password: ")
Открыть соединение ssh
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host, port=port, username=user, password=password)
Выполнить команду run tcpdump
stdin, stdout, stderr = ssh.exec_command('timeout 10 tcpdump port 5060 -nnv -s 0 -w testtrace.pcap')
channel = stdout.channel
channel.recv_exit_status()
ssh.close()
Открыть sftp-соединение
transport = paramiko.Transport((host, port))
transport.connect(username=user, password=password)
sftp = paramiko.SFTPClient.from_transport(transport)
Загрузить файл
filepath = '/root/testtrace.pcap'
localpath = 'C:\\Users\\******\\Desktop\\python\\testtrace.pcap'
sftp.get(filepath, localpath)
Выполнить команду удалить файл
stdin, stdout, stderr = ssh.exec_command('rm -f testtrace.pcap')
channel = stdout.channel
channel.recv_exit_status()
ssh.close()