Python은 paramiko 라이브러리를 통해 Linux 명령의 원격 실행을 어떻게 구현합니까?

WBOY
풀어 주다: 2023-05-17 10:55:50
앞으로
1562명이 탐색했습니다.

(1) 먼저 paramiko 라이브러리를 설치합니다

pip install paramiko
로그인 후 복사

(2) 다음 클래스는 캡슐화되어 직접 사용할 수 있습니다

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) 예를 들어 IP 주소가 192.168.1.12인 Linux 가상 머신을 준비한 다음 다음과 같이 직접 사용하세요. 위 캡슐화된 클래스는 Linux 명령의 원격 실행을 실현할 수 있습니다

ssh=SSHClient(host="192.168.1.12",username="root",password="xxxxxx")
output=ssh.exec("ifconfig")
print(output)
로그인 후 복사

(4) 실행 결과는 다음과 같습니다

원격 cmd 실행 시작: ifconfig
ens33: flags=4163 mtu 1500
inet 192.168 .1.12 넷마스크 255.255.255.0 브로드캐스트 192.168.1.255
inet6 240e:3a1:da7:6590:b39f:e15:6b3d:7e7 prefixlen 64 범위 ID 0x0& lt;글로벌>
inet6 fe80::4a67:131d :9133:acdf prefixlen 64 범위 ID 0x20< ;link>
ether 00:0c:29:58:d8:4c txqueuelen 1000(이더넷)
RX 패킷 195340바이트 148862388(141.9MiB)
RX 오류 0 삭제 0 오버런 0 프레임 0
TX 패킷 163425바이트 20837281(19.8MiB)
TX 오류 0 삭제 0 오버런 0 캐리어 0 충돌 0

lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 :: 1 prefixlen 128 범위 ID 0x10
루프 txqueuelen 1000(로컬 루프백)
RX 패킷 32바이트 2592(2.5KiB)
RX 오류 0 삭제 0 오버런 0 프레임 0
TX 패킷 32바이트 2592(2.5KiB)
TX 오류 0 삭제 0 오버런 0 캐리어 0 충돌 0

virbr0: flags=4099 mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 Broadcast 192.168.122.255
ether 5 2:54:00:e8:3f: 5c txqueuelen 1000(이더넷)
RX 패킷 0바이트 0(0.0B)
RX 오류 0 삭제 0 오버런 0 프레임 0
TX 패킷 0바이트 0(0.0B)
TX 오류 0 삭제 0 오버런 0 캐리어 0 충돌 0

위 내용은 Python은 paramiko 라이브러리를 통해 Linux 명령의 원격 실행을 어떻게 구현합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿