Python通過paramiko庫實現(xiàn)遠程執(zhí)行l(wèi)inux命令的方法
(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虛擬機,然后直接按照如下方法使用上面封裝的類即可實現(xiàn)遠程執(zhí)行l(wèi)inux命令
ssh=SSHClient(host="192.168.1.12",username="root",password="xxxxxx") output=ssh.exec("ifconfig") print(output)
(4)執(zhí)行結(jié)果如下
begin to run remote cmd: ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.12 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 240e:3a1:da7:6590:b39f:e15:6b3d:7e7 prefixlen 64 scopeid 0x0<global>
inet6 fe80::4a67:131d:9133:acdf prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:58:d8:4c txqueuelen 1000 (Ethernet)
RX packets 195340 bytes 148862388 (141.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 163425 bytes 20837281 (19.8 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 32 bytes 2592 (2.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 32 bytes 2592 (2.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:e8:3f:5c txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
到此這篇關(guān)于Python通過paramiko庫實現(xiàn)遠程執(zhí)行l(wèi)inux命令的文章就介紹到這了,更多相關(guān)Python遠程執(zhí)行l(wèi)inux命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python通過paramiko遠程下載Linux服務(wù)器上的文件實例
今天小編就為大家分享一篇Python通過paramiko遠程下載Linux服務(wù)器上的文件實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12python數(shù)據(jù)可視化Seaborn繪制山脊圖
這篇文章主要介紹了利用python數(shù)據(jù)可視化Seaborn繪制山脊圖,山脊圖一般由垂直堆疊的折線圖組成,這些折線圖中的折線區(qū)域間彼此重疊,此外它們還共享相同的x軸.下面來看看具體的繪制過程吧,需要的小伙伴可以參考一下2022-01-01pip安裝py_zipkin時提示的SSL問題對應(yīng)
今天小編就為大家分享一篇關(guān)于pip安裝py_zipkin時提示的SSL問題對應(yīng),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12基于Python中request請求得到的response的屬性問題
這篇文章主要介紹了基于Python中request請求得到的response的屬性問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05