ホームページ >運用・保守 >Linuxの運用と保守 >Python は paramiko ライブラリを介して Linux コマンドのリモート実行をどのように実装しますか?
(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) 例えば 192.168 の IP アドレスを用意します.1.12 linux 仮想マシンを作成し、次のように上記のカプセル化されたクラスを直接使用して、linux コマンドのリモート実行を実現します。
ssh=SSHClient(host="192.168.1.12",username="root",password="xxxxxx") output=ssh.exec("ifconfig") print(output)
(4) 実行結果は次のとおりです。
begin toリモート cmd を実行します: ifconfig
lo: flags=73833075fc641f5bd33c2fbed0a1f71c7a mtu 65536
ens33: flags=41632057e901932173af9a1f1ac783f07b05 mtu 1500
inet 192.168.1.12 ネットマスク 255.255.255.0 ブロードキャスト 192.168.1.255
inet6 24 0e:3a1:da7: 6590:b39f:e15: 6b3d:7e7 prefixlen 64scopeid 0x0
ether 00:0c:29:58:d8:4 c txqueuelen 1000 (Ethernet )
RX パケット 195340 バイト 148862388 (141.9 MiB)
RX エラー 0 ドロップ 0 オーバーラン 0 フレーム 0
TX パケット 163425 バイト 20837281 (19.8 MiB)
TX エラー 0 ドロップ 0 オーバーラン 0 キャリア 0 コリジョン 0inet 127.0.0.1 ネットマスク 255.0.0.0
virbr0:フラグ= 4099< up、broadcast、multicast> mtu 1500
inet6 ::1 prefixlen 128scopeid 0x10f7e6dec31ab1a0471d06c55afaca8d77
loop txqueuelen 1000 (ローカル ループバック)
RX パケット 32 バイト 2592 (2.5 KiB)
RX エラー 0 ドロップ 0 オーバーラン 0 フレーム 0
TX パケット 32 バイト 2592 (2.5 KiB)
TX エラー 0 ドロップ 0 オーバーラン 0 キャリア 0 コリジョン 0inet 192.168.122.1 netmask 255.255.255.0ブロードキャスト192.168.122.255
eather 52:54:00:e8:3f:5c txkeureen 1000(etherenet)# ## RX パケット 0 バイト 0 (0.0 B)
RX エラー 0 ドロップ 0 オーバーラン 0 フレーム 0
TX パケット 0 バイト 0 (0.0 B)
TX エラー 0 ドロップ 0 オーバーラン 0 キャリア 0 衝突 0
以上がPython は paramiko ライブラリを介して Linux コマンドのリモート実行をどのように実装しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。