自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

再見Xshell、Xftp!Python執(zhí)行Linux命令、上傳下載遠程文件

系統(tǒng) Linux
相信大家應(yīng)該都接觸過Linux操作系統(tǒng)(Ubuntu、Centos等),那么在使用的Linux操作系統(tǒng)需要使用一些遠程ssh工具,尤其是公網(wǎng)服務(wù)器。

 [[403719]]

大家好,我是辰哥

相信大家應(yīng)該都接觸過Linux操作系統(tǒng)(Ubuntu、Centos等),那么在使用的Linux操作系統(tǒng)需要使用一些遠程ssh工具,尤其是公網(wǎng)服務(wù)器。

常用的ssh工具主要有:Xshell、MobaXterm、Termius等

上傳文件到遠程Linux服務(wù)器:Xftp、Filezilla 等

這些工具有免費,有收費的。并且價格小貴。今天辰哥就來教大家如何用Python連接遠程Linux服務(wù)器,實現(xiàn)執(zhí)行命令和上傳文件。這里用到的Python庫是Paramiko

核心知識點(亮點):

1、Python連接遠程Linux服務(wù)器

2、執(zhí)行命令并返回結(jié)果

3、上傳文件到遠程Linux服務(wù)器

4、從遠程Linux下載文件

01Paramiko庫

1.安裝paramiko庫

在開始編寫代碼之前先安裝一下Python連接Linux服務(wù)器的庫,安裝命令如下:

  1. #1、安裝依賴包 
  2. pip install ecdsa 
  3. pip install Crypto 
  4. pip install Twisted 
  5. #2、安裝paramiko 
  6. pip install paramiko 

提示:先安裝三個依賴庫,再安裝Paramiko,直接安裝Paramiko會報錯。

2.paramiko核心組件

SSH組件:SSHClient,作用類似于Linux的ssh命令,用于執(zhí)行遠程命令。

SFTP組件:SFTPClient,作用類似于Linux的sftp命令,用于文件上傳、下載、修改文件權(quán)限等。

02SSHClient

1、SSHClient常用方法介紹

這里辰哥以自己的遠程服務(wù)器為例給大家演示,首先先連接服務(wù)器

  1. import paramiko 
  2. # ip、用戶名、密碼 
  3. ip = "遠程Linux的IP地址" 
  4. port = 22 
  5. user = "root" 
  6. password = "密碼" 
  7.  
  8. # 創(chuàng)建SSHClient 實例對象 
  9. ssh = paramiko.SSHClient() 
  10. # 調(diào)用方法,表示沒有存儲遠程機器的公鑰,允許訪問 
  11. ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
  12. # 連接遠程機器,地址,端口,用戶名密碼 
  13. ssh.connect(ip, port, userpassword, timeout=10) 

執(zhí)行l(wèi)inux命令,如:ls

  1. # 輸入linux命令 
  2. command1 = "ls" 
  3. ssh.exec_command(command1) 
  4. # stdout 為正確輸出,stderr為錯誤輸出 
  5. stdin, stdout, stderr = ssh.exec_command(command2) 
  6. # 輸出命令執(zhí)行結(jié)果 
  7. result = stdout.read() 
  8. print(result) 

xshell返回結(jié)果:

Python執(zhí)行代碼結(jié)果:

2、執(zhí)行多條Linux命令

上面的案例只是執(zhí)行一條Linux命令,在實際應(yīng)用中往往需要執(zhí)行2條或者2條以上的Linux,下面演示如何執(zhí)行多條命令

錯誤的方式:

  1. # 輸入linux命令 
  2. command1 = "cd /www/wwwroot" 
  3. command2 = "ls" 
  4. ssh.exec_command(command1) 
  5. stdin, stdout, stderr = ssh.exec_command(command2) 
  6. # 輸出命令執(zhí)行結(jié)果 
  7. result = stdout.read() 
  8. print(result) 

上面的命令是先執(zhí)行:cd /www/wwwroot ,進入到wwwroot,再查看里面的文件夾,下面是xshell里面執(zhí)行的結(jié)果。

Python代碼執(zhí)行的結(jié)果:

可以看到結(jié)果和之前的一樣,所以這種方式是錯誤(辰哥一開始也是這樣干的,這里就給大家提個醒)

正確的方式:

  1. # 輸入linux命令 
  2. command = "cd /www/wwwroot ;ls" 
  3. stdin, stdout, stderr = ssh.exec_command(command) 
  4. # 輸出命令執(zhí)行結(jié)果 
  5. result = stdout.read() 
  6. ## bytes 轉(zhuǎn) str 
  7. result = str(result) 
  8. result = result.split('\\n'
  9. for i in result: 
  10.      print(i) 

直接在用;把多條命令隔開即可,轉(zhuǎn)為str后,通過\\n去分割結(jié)果,按行輸出

03SFTPClient

1、SFTPClient常用方法介紹

2、上傳文件到Linux

這里先在本地新建一個文本文件:辰哥.txt ,并在里面輸入了一些內(nèi)容

連接Linux服務(wù)器

  1. # 獲取Transport實例 
  2. tran = paramiko.Transport(('遠程Linux的ip', 22)) 
  3. # 連接SSH服務(wù)端,使用password 
  4. tran.connect(username="用戶名"password='密碼'
  5. # 獲取SFTP實例 
  6. sftp = paramiko.SFTPClient.from_transport(tran) 

上傳文件

  1. # 設(shè)置上傳的本地/遠程文件路徑 
  2. localpath = "D:/公眾號/0603/辰哥.txt" 
  3. remotepath = "/www/wwwroot//辰哥.txt" 
  4.  
  5. # 執(zhí)行上傳動作 
  6. sftp.put(localpath, remotepath) 
  7. # 關(guān)閉連接 
  8. tran.close() 

效果如下:

3、從Linux服務(wù)器下載文件

辰哥在Linux服務(wù)器新建了一個文本文件:Python研究者.txt ,并寫入內(nèi)容

下載文件

  1. localpath2 = "D:/公眾號/0603/Python研究者.txt" 
  2. remotepath2 = "/www/wwwroot/Python研究者.txt" 
  3. # 執(zhí)行下載動作 
  4. sftp.get(remotepath2, localpath2) 
  5. # 關(guān)閉連接 
  6. tran.close() 

效果:

04小結(jié)

本文講解了Paramiko庫,并講解ssh和sftp兩大組件,設(shè)計的核心知識點(亮點):

1、Python連接遠程Linux服務(wù)器

2、執(zhí)行命令并返回結(jié)果

3、上傳文件到遠程Linux服務(wù)器

4、從遠程Linux下載文件

本文轉(zhuǎn)載自微信公眾號「Python研究者」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系Python研究者公眾號。

 

責任編輯:武曉燕 來源: Python研究者
相關(guān)推薦

2009-07-07 13:45:04

jspsmart

2018-04-20 16:15:42

Koa2上傳下載

2009-07-03 14:15:54

JSP SmartUp

2015-02-11 16:34:49

微信SDK

2009-07-30 13:43:58

ASP.NET中文件上

2010-03-08 11:34:45

Linux上傳下載指令

2023-09-06 08:33:30

2009-09-01 16:49:56

C#文件上傳下載

2009-10-23 10:45:33

linux系統(tǒng)文件下載

2009-07-02 13:31:13

JSP組件

2011-02-21 18:11:27

vsFTPd

2021-01-28 17:46:13

服務(wù)器遠程Xshell

2023-01-13 09:37:23

2023-05-07 07:45:31

2009-08-11 08:58:19

linux命令瀏覽網(wǎng)頁linux命令行參數(shù)linux命令行

2013-09-04 10:20:31

遠程控制軟

2024-06-20 12:55:23

2010-01-14 15:06:27

CentOS用戶

2013-09-02 17:39:29

2015-12-16 16:01:13

點贊
收藏

51CTO技術(shù)棧公眾號