Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Wie implementiert Python die Remoteausführung von Linux-Befehlen über die Paramiko-Bibliothek?

Wie implementiert Python die Remoteausführung von Linux-Befehlen über die Paramiko-Bibliothek?

WBOY
WBOYnach vorne
2023-05-17 10:55:501563Durchsuche

(1) Installieren Sie zuerst die Paramiko-Bibliothek

pip install paramiko

(2) Die folgenden Klassen sind gekapselt und können direkt verwendet werden

import paramiko

class SSHClient(object):
    def __init__(self,host,username,password,port=22):
        self.__host=host
        self.__username=username
        self.__password=password
        self.__port=port
        self.__ssh=None
        self.connect()

    def __del__(self):
        self.close()

    def connect(self):
        self.__ssh = paramiko.SSHClient()
        self.__ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        self.__ssh.connect(hostname=self.__host,port=self.__port,username=self.__username,password=self.__password)

    def exec(self,cmd):
        print(f"begin to run remote cmd: {cmd}")
        stdin, stdout, stderr = self.__ssh.exec_command(cmd,timeout=1800)
        returncode = stdout.channel.recv_exit_status()
        output=stdout.read().decode('utf-8')
        return output

    def close(self):
        self.__ssh.close()

(3) Bereiten Sie beispielsweise eine virtuelle Linux-Maschine mit der IP-Adresse 192.168.1.12 vor und dann Verwenden Sie es direkt wie folgt: Die oben gekapselte Klasse kann die Remote-Ausführung von Linux-Befehlen realisieren ,MULTICAST> c0e98daa6cc905d3cdbeafdad89e7fa3

inet6 fe80::4a67:131d :9133:acdf prefixlen 64 Scopeid 0x20< ;link>

Ether 00:0c:29:58:d8:4c txqueuelen 1000 (Ethernet)

RX-Pakete 195340 Bytes 148862388 (141,9 MiB)
RX-Fehler 0 verworfen 0 Überläufe 0 Rahmen 0

TX-Pakete 163425 Bytes 20837281 (19,8 MiB)
TX-Fehler 0 verworfen 0 Überläufe 0 Träger 0 Kollisionen 0

lo: flags=73940409b266a347906f934bf7de6f943d
inet6 :: 1 Präfixlen 128 ScopeId 0x10 & lt; Host & GT; 0 fallen gelassen 0 Überläufe 0 Träger 0 Kollisionen 0

virbr0: flags=40998e6d741219daaca2222a7d10d95da900 :54:00:e8:3f: 5c txqueuelen 1000 (Ethernet)
RX-Pakete 0 Bytes 0 (0,0 B)
RX-Fehler 0 verworfen 0 Überläufe 0 Frame 0
TX-Pakete 0 Bytes 0 (0,0 B)

TX-Fehler 0 verworfen 0 Überläufe 0 Träger 0 Kollisionen 0


Das obige ist der detaillierte Inhalt vonWie implementiert Python die Remoteausführung von Linux-Befehlen über die Paramiko-Bibliothek?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Vorheriger Artikel:Was bedeutet Linux i386Nächster Artikel:Was bedeutet Linux i386