Bagaimanakah Python melaksanakan pelaksanaan jauh arahan linux melalui perpustakaan paramiko?

WBOY
Lepaskan: 2023-05-17 10:55:50
ke hadapan
1567 orang telah melayarinya

(1) Mula-mula pasang pustaka paramiko

pip install paramiko
Salin selepas log masuk

(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()
Salin selepas log masuk

(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)
Salin selepas log masuk

(4) Keputusan pelaksanaan adalah seperti berikut

mulakan jalankan cmd jauh: ifconfig
ens33: flags=4163 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 0x0
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 10
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!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan