成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

大技霸教你遠程執行Linux腳本和命令

系統 Linux
如果現在需要在 Linux 服務器上執行一系列命令(比如搭建 LNMP 環境)我應該會第一時間想到想辦法寫個 Shell 腳本,然后扔上去執行以下看看結果。

如果現在需要在 Linux 服務器上執行一系列命令(比如搭建 LNMP 環境)我應該會第一時間想到想辦法寫個 Shell 腳本,然后扔上去執行以下看看結果。

然而一貫懶惰的我并不想這么去執行 Shell 和一些重復命令。所以俺尋思可以有個方法本地直接在服務器端執行腳本,尋思生異端,這時候有某大技霸告訴我有個叫 paramiko 的 Python 庫,從此開啟我新世界的大門。

[[326410]]

對于 paramiko 安裝直接 pip 或者 PyCharm 這里就不多說了,如果看到這里你覺得自己不怎么了解python語法的也不必擔心,你完全可以用 paramiko 單純的執行 Shell 命令查看結果和上傳下載文件,省去重復的工作。

paramiko 實現了 SSHv2 協議(底層使用 cryptography ),包含兩個核心組件:SSHClient 和 SFTPClient 。 SSHClient 是對 SSH 會話的封裝,用于執行遠程命令,SFTPClient 是對 SFTP 客戶端的封裝,用以實現遠程文件操作。

這里先舉兩個列子你應該就明白怎么用了,終于開始正片了。

[[326411]]

SSHClient 的列子:

  1. # -*- coding: utf-8 -*- 
  2. import paramiko 
  3. client = paramiko.SSHClient()# 實例化SSHClient 
  4. client.set_missing_host_key_policy(paramiko.AutoAddPolicy())# 自動添加策略,保存服務器的主機名和密鑰信息,如果不添加,那么不再本地know_hosts文件中記錄的主機將無法連接 
  5.  
  6. client.connect(hostname='192.168.23.134'port=22username='ftoz'password='123456')# 連接SSH服務端,以用戶名和密碼進行認證 
  7.  
  8. # 打開一個Channel并執行命令 
  9. stdin, stdout, stderr = client.exec_command('ls')  # stdout 為正確輸出,stderr為錯誤輸出,同時是有1個變量有值 
  10.  
  11. # 打印執行結果 
  12. print(stdout.read().decode('utf-8')) 
  13.  
  14. # 關閉SSHClient 
  15. client.close() 

輸出:

大技霸教你遠程執行Linux腳本和命令

這里說明一下:

  1. client = paramiko.SSHClient(), 
  2. client.set_missing_host_key_policy(paramiko.AutoAddPolicy())你可以理解為固定姿勢。 
  3. client.connect(hostname='192.168.1.105'port=22username='ftoz',password='123456')這里就是你的linux變量依次為地址、端口(總共65535個端口,不過ssh默認是22端口)、登錄名、密碼。 
  4. stdin, stdout, stderr = client.exec_command('df -h ') 這里就是核心你需要做的shell命令,這三個變量不用按照這種姿勢,你可以隨意,不過按照順序你知道里面裝的什么數據就行(重點在輸出和錯誤)。 
  5.  
  6. connect():這個是實現遠程服務器連接和認證的,參數有: 
  7. hostname 連接的目標主機 
  8. port=SSH_PORT 指定端口 
  9. username=None 驗證的用戶名 
  10. password=None 驗證的用戶密碼 
  11. pkey=None 私鑰方式用于身份驗證 
  12. key_filename=None 一個文件名或文件列表,指定私鑰文件 
  13. timeout=None 可選的tcp連接超時時間 
  14. allow_agent=True, 是否允許連接到ssh代理,默認為True 允許 
  15. look_for_keys=True 是否在~/.ssh中搜索私鑰文件,默認為True 允許 
  16. compress=False, 是否打開壓縮。 
  17.  
  18. set_missing_host_key_policy():這個是設置遠程服務器沒有在know_hosts文件中記錄時的應對策略。(可以理解為避免報錯),參數有: 
  19. AutoAddPolicy 自動添加主機名及主機密鑰到本地HostKeys對象,不依賴load_system_host_key的配置。即新建立ssh連接時不需要再輸入yes或no進行確認 
  20. WarningPolicy 用于記錄一個未知的主機密鑰的python警告。并接受,功能上和AutoAddPolicy類似,但是會提示是新連接 
  21. RejectPolicy 自動拒絕未知的主機名和密鑰,依賴load_system_host_key的配置。此為默認選項 
  22. exec_command():這是寫你需要執行的命令的 

接下來你就可以拿出輸出做一些該干嘛(ke)干嘛(pa)的事情了,這里先舉這個簡單的列子。

SFTPClient 常用方法:

  1. t = paramiko.Transport(('192.168.23.134', 22))# 獲取Transport實例 
  2. t.connect(username='ftoz'password='123456')# 連接SSH服務端,使用password 
  3. sftp = paramiko.SFTPClient.from_transport(t) 
  4. sftp.put("F:\S12312.txt","/home/ftoz/zxc12312.txt")#執行上傳動作 
  5. sftp.get("/home/ftoz/zxc12312.txt", "F:\S12312.txt")#執行下載動作 
  6. t.close() 

SFTPCLient 作為一個 sftp 的客戶端對象,根據 ssh 傳輸協議的 sftp 會話,實現遠程文件操作,如上傳、下載、權限、狀態

  1. from_transport(cls,t) 創建一個已連通的SFTP客戶端通道 
  2. put(localpath, remotepath, callback=Noneconfirm=True) 將本地文件上傳到服務器 參數confirm:是否調用stat()方法檢查文件狀態,返回ls -l的結果 
  3. get(remotepath, localpath, callback=None) 從服務器下載文件到本地 
  4. mkdir() 在服務器上創建目錄 
  5. remove() 在服務器上刪除目錄 
  6. rename() 在服務器上重命名目錄 
  7. stat() 查看服務器文件狀態 
  8. listdir() 列出服務器目錄下的文件 

最后養成隨關閉的好習慣 client.close()。

本文授權轉載自公眾號「良許Linux」。良許,世界500強外企Linux開發工程師,公眾號里分享大量Linux干貨,歡迎關注!

 

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2012-05-08 11:11:43

Linuxcrontab命令

2022-11-18 08:55:33

2022-08-16 14:47:08

服務器端Web端腳本

2024-01-26 07:58:09

2017-11-29 18:31:27

Linux命令

2017-12-11 09:34:40

Linux啟動或重啟命令與腳本

2010-07-15 14:54:51

at命令crontab定時執行任務

2021-03-11 14:28:11

bugLinux內核

2021-03-18 09:52:05

bugLinux內核

2017-03-10 10:37:16

Linux命令腳本

2014-09-26 15:41:51

2021-06-04 13:07:53

LinuxPythonXshell

2020-11-06 07:42:01

Linux命令腳本

2019-07-22 15:35:22

數據平臺架構

2014-10-30 14:02:26

LinuxFTP漏洞

2009-06-24 10:44:08

2014-07-25 14:20:45

Linux腳本

2013-12-20 10:36:56

2010-02-04 14:42:51

Linux mysql

2023-03-29 18:37:52

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美在线一区二区三区 | 中文字幕在线观看av | 欧美久久久久 | 亚洲综合色婷婷 | 亚洲专区在线 | 成人精品一区二区三区中文字幕 | av在线二区 | 久久伊人一区二区 | 精品国产一区二区三区免费 | 久久精品91久久久久久再现 | 一区二区欧美在线 | 成人羞羞国产免费视频 | 中文天堂在线一区 | 日韩精品免费在线观看 | 尤物在线视频 | 中文字幕亚洲视频 | 精品国产乱码一区二区三区a | 欧美特级黄色 | 国产一区二区日韩 | 91视频入口 | 一区二区中文 | 国产一区二区三区在线看 | 999国产视频 | 国产精彩视频 | av在线一区二区 | 99久久精品国产一区二区三区 | 亚洲国产精品一区二区三区 | 91精品国产91久久久久久最新 | 亚洲精品欧美一区二区三区 | 在线观看免费国产 | 一级片在线观看 | 777777777亚洲妇女| 国产成人99久久亚洲综合精品 | 欧美日韩在线观看一区二区三区 | 精品国产乱码一区二区三区 | 蜜桃色网 | 欧美操操操 | 成人日批视频 | 国产日韩一区二区三区 | 成人在线免费视频 | 日日日日日日bbbbb视频 |