搜尋
首頁後端開發Python教學python如何實現自動化運維

python如何實現自動化運維

May 17, 2023 pm 12:22 PM
python

1、安裝

pip install paramiko

2、導入模組

import paramiko

3、使用

#def initSshClinet (): ''' 初始化,SSH連線帳號密碼登入伺服器:return: sshClinet ''' ip = ""#伺服器ip位址sshClinet = paramiko.SSHClient() sshClinet.set_missing_host_key_policy(paramiko.AutoAddPolicy()) sshy()) sconnlinet. ip, 22, userName, pw, timeout=360) return sshClinet

def exeCommond(commond): ''' 執行shell指令''' stdin, stdout, stderr = sshClient.exec_command(command) outStr = stdout .readlines() print("\n".join(outStr))

def sftpUploadFile(localPath, remotePath): #取得SFTP實例sftp = sshClinet.open_sftp() #執行上傳動作sftp.put(localPath , remotePath)

def sftpDownloadFile(localPath, remotePath): #取得SFTP實例sftp = sshClinet.open_sftp() #執行下載動作sftp.get(localPath, remotePath)

記得關閉動作sftp.get(localPath, remotePath)

」記得關閉動作sftp.連線

sshClient.close()

也可以使用私密金鑰登入:

# 設定私人金鑰檔案位置private = paramiko.RSAKey.from_private_key_file('/Users/ ch/.ssh/id_rsa')#實例化SSHClientclient = paramiko.SSHClient()#自動添加策略,保存伺服器的主機名稱和密鑰信息,如果不添加,那麼不再本地know_hosts檔案中記錄的主機將無法連接client .set_missing_host_key_policy(paramiko.AutoAddPolicy())#連接SSH服務端,以使用者名稱和密碼進行認證client.connect(hostname='10.0.0.1',port=22,username='root',pkey=private)##學習

paramiko包含兩個核心元件:SSHClient和SFTPClient。

SSHClient的作用類似Linux的ssh指令,是對SSH會話的封裝,該類別封裝了傳輸(Transport),通道(Channel)及SFTPClient建立的方法(open_sftp),通常用於執行遠端命令。 SFTPClient的作用類似與Linux的sftp指令,是對SFTP客戶端的封裝,用以實現遠端檔案操作,如檔案上傳、下載、修改檔案權限等操作。

Channel是一種類別Socket,一種安全的SSH傳輸通道Transport是一種加密的會話,使用時會同步創建了一個加密的Tunnels(通道),這個Tunnels叫做ChannelSession是client與Server保持連接的對象,用connect()/start_client()/start_server()開始會話

SSHClient常用的方法介紹

connect() :實作遠端伺服器的連接與認證,對於該方法只有hostname是必傳參數。

hostname連線的目標主機port=SSH_PORT指定連接埠username=None驗證的使用者名稱password=None驗證的使用者密碼pkey=None私鑰方式用於驗證key_filename=None一個檔案名稱或檔案列表,指定私鑰檔案timeout=None可選的tcp連線逾時時間allow_agent=True是否允許連線到ssh代理,預設為True 允許look_for_keys=True是否在~/.ssh中搜尋私鑰文件,預設為True 允許compress=False是否開啟壓縮

set_missing_host_key_policy() :設定遠端伺服器沒有在know_hosts檔案中記錄時的應對策略。傳入MissingHostKeyPolicy的子類,目前支援三種策略:

設定連接的遠端主機沒有本地主機金鑰或HostKeys物件時的策略,目前支援三種:

AutoAddPolicy自動添加主機名稱及主機金鑰到本機HostKeys對象,不依賴load_system_host_key的配置。即新建立ssh連線時不需要再輸入yes或no進行確認WarningPolicy用於記錄一個未知的主機金鑰的python警告。並接受,功能上和AutoAddPolicy類似,但會提示是新連線RejectPolicy自動拒絕未知的主機名稱和金鑰,依賴load_system_host_key的設定。此為預設選項

exec_command() :在遠端伺服器執行Linux命令的方法。

open_sftp() :在目前ssh會話的基礎上建立一個sftp會話。該方法會傳回一個SFTPClient物件。

SFTPClient常用方法介紹

from_transport(cls,t) :建立一個已連結的SFTP客戶端通道put(localpath, remotepath, callback=None, confirm= True) :將本機檔案上傳到伺服器參數confirm:是否呼叫stat()方法檢查檔案狀態,傳回ls -l的結果get(remotepath, localpath, callback=None) :從伺服器下載檔案到本機mkdir() :在伺服器上建立目錄remove() : 在伺服器上刪除目錄rename() :在伺服器上重新命名目錄stat() :查看伺服器檔案狀態 listdir():列出伺服器目錄下的檔案###

以上是python如何實現自動化運維的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:亿速云。如有侵權,請聯絡admin@php.cn刪除
Python:遊戲,Guis等Python:遊戲,Guis等Apr 13, 2025 am 12:14 AM

Python在遊戲和GUI開發中表現出色。 1)遊戲開發使用Pygame,提供繪圖、音頻等功能,適合創建2D遊戲。 2)GUI開發可選擇Tkinter或PyQt,Tkinter簡單易用,PyQt功能豐富,適合專業開發。

Python vs.C:申請和用例Python vs.C:申請和用例Apr 12, 2025 am 12:01 AM

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。Python以简洁和强大的生态系统著称,C 则以高性能和底层控制能力闻名。

2小時的Python計劃:一種現實的方法2小時的Python計劃:一種現實的方法Apr 11, 2025 am 12:04 AM

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

Python:探索其主要應用程序Python:探索其主要應用程序Apr 10, 2025 am 09:41 AM

Python在web開發、數據科學、機器學習、自動化和腳本編寫等領域有廣泛應用。 1)在web開發中,Django和Flask框架簡化了開發過程。 2)數據科學和機器學習領域,NumPy、Pandas、Scikit-learn和TensorFlow庫提供了強大支持。 3)自動化和腳本編寫方面,Python適用於自動化測試和系統管理等任務。

您可以在2小時內學到多少python?您可以在2小時內學到多少python?Apr 09, 2025 pm 04:33 PM

兩小時內可以學到Python的基礎知識。 1.學習變量和數據類型,2.掌握控制結構如if語句和循環,3.了解函數的定義和使用。這些將幫助你開始編寫簡單的Python程序。

如何在10小時內通過項目和問題驅動的方式教計算機小白編程基礎?如何在10小時內通過項目和問題驅動的方式教計算機小白編程基礎?Apr 02, 2025 am 07:18 AM

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

如何在使用 Fiddler Everywhere 進行中間人讀取時避免被瀏覽器檢測到?如何在使用 Fiddler Everywhere 進行中間人讀取時避免被瀏覽器檢測到?Apr 02, 2025 am 07:15 AM

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...

Python 3.6加載Pickle文件報錯"__builtin__"模塊未找到怎麼辦?Python 3.6加載Pickle文件報錯"__builtin__"模塊未找到怎麼辦?Apr 02, 2025 am 07:12 AM

Python3.6環境下加載Pickle文件報錯:ModuleNotFoundError:Nomodulenamed...

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用