Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Bagaimanakah Python melaksanakan pelaksanaan jauh arahan linux melalui perpustakaan paramiko?

Bagaimanakah Python melaksanakan pelaksanaan jauh arahan linux melalui perpustakaan paramiko?

WBOY
WBOYke hadapan
2023-05-17 10:55:501494semak imbas

(1) Mula-mula pasang pustaka paramiko

pip install paramiko

(2) Kelas berikut dirangkumkan dan boleh digunakan terus

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) Sebagai contoh, sediakan alamat IP 192.168 .1.12 Mesin maya Linux, dan kemudian terus menggunakan kelas terkapsul di atas seperti berikut untuk mencapai pelaksanaan jauh arahan Linux

ssh=SSHClient(host="192.168.1.12",username="root",password="xxxxxx")
output=ssh.exec("ifconfig")
print(output)

(4) Keputusan pelaksanaan adalah seperti berikut

mulakan jalankan cmd jauh: ifconfig
ens33: flags=416321aa1af3d56eb6e06d597cbff8b18287 mtu 1500
inet 192.168.1.12 netmask 255.255.255.256 i89.62.256:00.00 a1:da7:6590 :b39f:e15: 6b3d:7e7 awalan 64 skopid 0x0c0e98daa6cc905d3cdbeafdad89e7fa3
eter 00:0c:29: 58:d8:4c txqueuelen 1000 (Ethernet )
1.45 paket RX 349 (1.45 byte) )
Ralat RX 0 jatuh 0 overrun 0 frame 0
Paket TX 163425 bait 20837281 (1 9.8 MiB)
Ralat TX 0 jatuh 0 overrun 0 pembawa 0 perlanggaran 0

lo: flag LOOPBACK,RUNNING> mtu 65536

inet 127.0.0.1 netmask 255.0.0.0

inet6 ::1 prefixlen 128 scopeid 0x 10f7e6dec31ab1a0471d06c55afaca8d77
Loopback R
gelung Loxback 32 bait 2592 (2.5 KiB)
Ralat RX 0 jatuh 0 overrun 0 bingkai 0
Paket TX 32 bait 2592 (2 .5 KiB)
Ralat TX 0 jatuh 0 overrun 0 pembawa 0 perlanggaran 0
inet 192.168.122.1 netmask 255.255.255.0 siaran 1 92.168.122.25>e: 5c:3x:5 queuelen 1000 (Ethernet)

Paket RX 0 bait 0 (0.0 B)

Ralat RX 0 jatuh 0 melebihi 0 bingkai 0
Paket TX 0 bait 0 (0. 0 B)
Ralat TX 0 jatuh 0 melebihi 0 pembawa 0 perlanggaran 0

Atas ialah kandungan terperinci Bagaimanakah Python melaksanakan pelaksanaan jauh arahan linux melalui perpustakaan paramiko?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Artikel sebelumnya:Apakah maksud linux i386Artikel seterusnya:Apakah maksud linux i386