Heim >Backend-Entwicklung >Python-Tutorial >Beispiele für Fernsteuerung und -übertragung mit dem Paramiko-Modul in Python
In diesem Artikel wird hauptsächlich das Paramiko-Modul von Python zur Implementierung von Fernsteuerungs- und Übertragungsbeispielen vorgestellt. Es ist von großem praktischem Wert. Freunde in Not können sich darauf beziehen.
In diesem Artikel wird das Paramiko-Modul von Python zur Implementierung von Fernsteuerungs- und Übertragungsbeispielen vorgestellt Beispiele. Teilen Sie es mit allen. Die Details lauten wie folgt:
1 Installation
sudo pip install paramiko
2 SSH, um Remote zu erreichen Kontrolle
#LINUX下执行shell ssh username@ip #输入密码后就可以对远程机器进行操作 ssh username@ip command #输入密码后远程机器就执行command
Nachdem SSH ausgeführt wurde, können Sie den SSH-Prozess beenden, wenn Sie ihn beenden möchten.
3 paramiko implementiert ssh
import paramiko hostname = '10.1.111.111' username = 'root' password = '111111' port = 22 #整数不是字符串 paramiko.util.log_to_file('paramiko.log') ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #允许连接不在know_hosts文件中的主机 ssh.connect(hostname=hostname,port=port,username=username,password=password) stdin, stdout, stderr = ssh.exec_command("ls") #远程执行shell命令 print(stdout.readlines()) #输出回显结果 ssh.close()
exec_command-Befehl, getrennt durch Semikolon; bedeutet, dass mehrere Befehle nacheinander ausgeführt werden können in Parametern übergeben; exec_command ist eine einzelne Sitzung, die beim Anmelden wie folgt in das Standardverzeichnis zurückkehrt:
a='~/Videos' b='aaa' ssh.exec_command('cd %s;mkdir %s'%(a,b)) #aaa在a目录下 ssh.exec_command('mkdir aaa') #aaa在缺省目录下
Wenn beim Ausführen des Befehls aus der Ferne eine Interaktion auftritt, können Sie diese mit stdin.write("") abschließen.
Hinweis:
(1) Fügen Sie -S nach sudo hinzu, um das Passwort von stdin zu erhalten.
(2) Fügen Sie am Ende stdin.write('passwordn') hinzu n als Ende des Befehls, andernfalls wartet der Server weiter 🎜>
Sie können mehrere Prozesse oder Threads verwenden, um Befehle stapelweise auszuführen:stdin, stdout, stderr = ssh.exec_command('sudo -S ls') stdin.write('password\n') stdin.flush()4 Remote-Dateiübertragung
scp kopiert vom lokalen Server auf den Remote-Server
import paramiko import threading def ssh_cmd(ip,port,username,passwd,cmd): ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(ip,port,username,passwd) for m in cmd: stdin, stdout, stderr = ssh.exec_command(m) print(stdout.readlines()) ssh.close() if __name__=='__main__': cmd = ['ls','ifconfig'] a=threading.Thread(target=ssh_cmd,args=(ip,port,username,passwd,cmd)) a.start() a.join()Der Benutzername wird angegeben und das Benutzerkennwort muss eingegeben werden, nachdem der Befehl ausgeführt wurde; Wenn der Benutzername nicht angegeben ist, müssen Sie nach der Ausführung des Befehls den Benutzernamen und das Passwort eingeben. Kopieren Sie Dateien von einem Remote-Standort auf den lokalen
scp local_file remote_username@remote_ip:remote_file5 Paramiko implementiert die Remote-Dateiübertragung
Neu Ein SFTPClient-Objekt, das die vorherige SSH-Verbindung wiederverwendet. Wenn wir daher SFTP zum Übertragen von Dateien verwenden, müssen wir den Benutzer nicht erneut authentifizieren. Datei-
-Upload implementieren:
scp remote_username@remote_ip:remote_file local_fileoder Datei-Upload und -Download wie folgt implementieren:
sftp = paramiko.SFTPClient.from_transport(ssh.get_transport()) #sftp = ssh.open_sftp() #两者选其一即可 sftp.put('bbb.c','aaa.c') #文件上传并重命名 sftp.close()Offizielle Dokumente
Das obige ist der detaillierte Inhalt vonBeispiele für Fernsteuerung und -übertragung mit dem Paramiko-Modul in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!