亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python使用paramiko操作linux的方法講解

發布時間:2020-08-28 00:40:46 來源:腳本之家 閱讀:182 作者:Lee_Tech 欄目:開發技術

paramiko介紹

paramiko是一個基于python編寫的、使用ssh協議的模塊,跟xshell和xftp功能類似,支持加密與認證,可以上傳下載和訪問服務器的文件。

可以利用paramiko模塊寫服務器腳本,在本地執行,比如持續更新代碼,查看日志,批量配置集群等。

paramiko 主要包含SSHClient和SFTPClient兩個組件:

SSHClient

ssh服務會話的表示,通常用來執行命令,主要有connect、exec_command、load_system_host_keys和set_missing_host_key_policy方法。

  • connect:建立SSH遠程連接并校驗。
  • exec_command:執行指令并返回結果。
  • load_system_host_keys:加載本地公鑰校驗文件。
  • set_missing_host_key_policy:遠程主機沒有本地主機密鑰或HostKeys時的策略。

SFTPClient

SFTP客戶端對象,實現遠程文件操作,主要有from_transport、put、get、Mkdir、remove、rename、stat、listdir等方法。

  • from_transport:從已通過驗證的傳輸對象簡歷連接。
  • put:上傳本地文件到服務器上。
  • get:從服務器下載文件到本地。
  • Mkdir、remove、rename、stat、listdir:創建目錄、刪除目錄、重命名文件或目錄、獲取文件信息、獲取指定目錄中的列表。

安裝與使用

安裝

pip install paramiko

執行linux命令

import paramiko
#服務器信息,主機名(IP地址)、端口號、用戶名及密碼
hostname = "xxx.xxx.xx.170"
port = 11022
username = "rdadmin"
password = "818"
#創建SSH對象 
client = paramiko.SSHClient()
#自動添加策略,保存服務器的主機名和密鑰信息
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#連接服務器
client.connect(hostname, port, username, password, compress=True)
# 執行linux命令
stdin, stdout, stderr = client.exec_command('ls /')
for line in stdout:
  print('... ' + line.strip('\n')) 
#or
print(stdout.readlines())

訪問linux上的文件

import paramiko
hostname = "192.168.0.1"
port = 22
username = "root"
password = "root"
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname, port, username, password, compress=True)
sftp_client = client.open_sftp()
remote_file = sftp_client.open("/home/verified_list.txt") #文件路徑
try:
  for line in remote_file:
    print(line.strip())
finally:
  remote_file.close()

上傳到linux與從linux下載文件

import paramiko
hostname = 192.168.0.1
port = 22
username = "root"
password = "root"
transport = paramiko.Transport((hostname, port))
transport.connect(username = username, password = password)
sftp = paramiko.SFTPClient.from_transport(transport)
# 下載文件
sftp.get("/home/share/video.mp4","./視頻文件下載/")
#上傳文件
sftp.put("./video.mp4","/home/share/video.mp4")
sftp.close()

與linux的交互操作

通過SSHClient的invoke_shell方法,可以創建一個交互會話的對象,和exec_command方法不同的是,這個可以實現命令交互,比如先cd到某個目錄下,再執行腳本操作,然后退出,這種需要多個步驟的操作。

import paramiko
hostname = "192.168.0.1"
port = 22
username = "root"
password = "root"
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname, port, username, password, compress=True)
channel = client.invoke_shell() # 在SSH server端創建一個交互式的shell
command = ""
channel.send(command + '\n')
time.sleep(10)
stdout = channel.recv(1024*100000)
out_list = stdout.decode().split("\n")
client.close()

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對億速云的支持。如果你想了解更多相關內容請查看下面相關鏈接

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

敦化市| 宁海县| 江津市| 普陀区| 乡宁县| 永春县| 伊金霍洛旗| 朝阳区| 娄烦县| 恩施市| 抚顺县| 古蔺县| 连云港市| 枣强县| 大新县| 凤城市| 阳东县| 五台县| 灵宝市| 宝鸡市| 巍山| 磐石市| 乌拉特后旗| 荥阳市| 达孜县| 平乐县| 耒阳市| 高安市| 邵阳县| 庆安县| 叶城县| 龙里县| 江西省| 通榆县| 新疆| 昌黎县| 宾川县| 灌阳县| 榆林市| 泗阳县| 耒阳市|