Heim > Backend-Entwicklung > Python-Tutorial > Beispiele für Fernsteuerung und -übertragung mit dem Paramiko-Modul in Python

Beispiele für Fernsteuerung und -übertragung mit dem Paramiko-Modul in Python

黄舟
Freigeben: 2017-10-13 11:00:11
Original
2865 Leute haben es durchsucht

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
Nach dem Login kopieren

2 SSH, um Remote zu erreichen Kontrolle


#LINUX下执行shell
ssh username@ip #输入密码后就可以对远程机器进行操作
ssh username@ip command #输入密码后远程机器就执行command
Nach dem Login kopieren

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()
Nach dem Login kopieren

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在缺省目录下
Nach dem Login kopieren

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()
Nach dem Login kopieren
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()
Nach dem Login kopieren

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_file
Nach dem Login kopieren
5 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_file
Nach dem Login kopieren

oder 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()
Nach dem Login kopieren
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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage