python如何利用paramiko執行伺服器命令

2023-03-19 00:50:35 字數 2074 閱讀 7370

話不多說直接上**

封裝連線

@staticmethod

def connect(ip, server_user, server_port, server_path):

"""連線伺服器

:param :

:return:

"""ssh = paramiko.sshclient()

private_key = paramiko.rsakey.from_private_key_file('{}.ssh/id_rsa'.format(server_path))

ssh.set_missing_host_key_policy(paramiko.autoaddpolicy())

try:

ssh.connect(ip, port=server_port, username=server_user, pkey=private_key, timeowspgxypkxfut=5, allow_agent=true)

return ssh

except exception as e:

app.logger.info('connect_error info is {}'.for

return

在伺服器執行命令

def fabric_run_cmd(self, ip, server_user, server_port, server_path, cmd):

"""批量在伺服器執行命令

:return:

"""conn = self.connect(ip, server_user, server_port, server_path)

try:

if type(conn) == dict:

程式設計客棧 return conn

else:

stdin, stdout, stderr = conn.exec_command(cmd)

app.logger.info('fabric_run_cmd_stdout info is {}'.format(stdout.readlines()))

app.logger.info('fabric_run_cmd_stderr info is {}'.format(stderr.readlines()))

channel = stdout.channel

status = channel.recv_exit_status()

conn.close()

app.logger.info('fabric_run_cmd_status info is {}'.format(status))

if status == 0:

return

else:

return

except exception as e:

app.logger.info('fabric_run_cmd_error info is {}'.format(e.__repr__()))

return

將檔案傳送到伺服器

def fabric_put_file(self, ip, src_file, dst_file, server_user, server_port, server_path):

"""傳送檔案到伺服器

:return:

"""conn = self.connect(ip, server_user, server_port, server_path)

if type(conn) == dict:

return conn

else:

try:

ftp = conn.open_sftp()

ftp.put(dst_file, src_file) # 傳送檔案之前先判斷有沒有目標資料夾 如果沒有現在伺服器上建立資料夾

ftp.close() # 在此判斷檔案是否傳送成功

return

except exception as e:

app.logger.info('fabric_put_file_error info is {}'.format(e.__repr__()))

return

能力有限,如有不妥請留言指正

小楊學python(十) paramiko模組

1.paramiko 通過python實現模擬ssh批量登入 在linux系統上 ssh本身也可以用來傳檔案,例如 使用 scp r opt test root remote host opt 命令也可以執行傳輸檔案到遠端主機。小知識點 linux中 l.可以檢視隱藏檔案,ls a 檢視所有檔案 包...

python簡單封裝paramiko模組

基於 paramiko 的使用,將其做簡單封裝,便於使用 coding utf 8 import paramiko class sshclient object def init self,hostname,username,port,private key 我這是私鑰登入,密碼的話就寫passwo...

python第五十天 paramiko

python通過paramiko實現,ssh功能 1 import paramiko 23 ssh paramiko.sshclient 建立一個ssh連線物件 4 ssh.set missing host key policy paramiko.autoaddpolicy 允許連線不在knov h...

param與requestScope的區別

之前並沒有仔細學過el表示式,只知道用 去直接獲取值。最近看教程的時候發現使用的是param,然後我就不太明白requestscope與param的區別。所以這裡做一個比較 首先確定兩個值 name admin psw 123 對name設定值,對psw不進行操作 servlet中 protecte...

教你如何利用python呼叫攝像頭

這篇文章主要介紹了python呼叫攝像頭的示例 幫助大家更好的理解和使用python,感興趣的朋友可以瞭解下 一 開啟攝像頭 import cv2 import numpy as np def video demo capture cv2.videocapture 0 0為電腦內建攝像頭 while...

利用python如何刷訪問量

剛剛閒著無聊,看著自己寫的部落格的訪問量低的可憐,竟有一種想要刷的感覺。人就應該這樣敢想敢做!下面是我的python 寫的比較粗糙,各位看官看看就好。不過話說回來,刷完我就有深深的愧疚感,我們不應該通過旁門歪道來獲得成功,訪問量代表的是人們對你的認可,提升自己的能力才是提高訪問量的不二法門。經過左腦...

如何利用Python對中文進行分詞處理

python做中文分詞處理主要有以下幾種 結巴分詞 nltk thulac 1 fxsjy jieba 結巴的標語是 做最好的 python 中文分片語件,或許從現在來看它沒做到最好,但是已經做到了使用的人最多。結巴分詞網上的學習資料和使用案例比較多,上手相對比較輕鬆,速度也比較快。結巴的優點 2 ...

如何利用Python對遙感影像進行顯示

遙感影像一般具有多個波段,比較常見的影像一般是4波段多光譜影像,比如高分一號 高分二號 資源三號等。這些影像資料一般體量較大,有的幾百兆,有的多達幾十g,格式一般是16位無符號整型,一般看圖軟體無法開啟顯示,需要arcgis envi等專業的軟體進行檢視,有時候很不方便。這篇部落格就簡單的介紹一下,...

Python如何利用多核處理器

python中,如果想使程式充分利用多核處理器,有以下幾個方案 l 使用threading 模組,然後將程式執行在 ironpython 或jython 之上。l 使用python 自帶的multiprocessing 模組,這個是用來建立多程序的。l 使用subprocess 模組建立子程序,並控...