Python使用paramiko連接遠(yuǎn)程服務(wù)器執(zhí)行Shell命令的實(shí)現(xiàn)
需求
在自動(dòng)化測(cè)試場(chǎng)景里, 有時(shí)需要在代碼里獲取遠(yuǎn)程服務(wù)器的某些數(shù)據(jù), 或執(zhí)行一些查詢命令,如獲取Linux系統(tǒng)版本號(hào) \ 獲取CPU及內(nèi)存的占用等, 本章記錄一下使用paramiko模塊SSH連接服務(wù)器的方法
1. 先安裝paramiko庫(kù)
pip3 install paramiko
2. 代碼
#!/usr/bin/env python
# coding=utf-8
"""
# :author: Terry Li
# :url: https://blog.csdn.net/qq_42183962
# :copyright: © 2020-present Terry Li
# :motto: I believe that the God rewards the diligent.
"""
import paramiko
class cfg:
host = "192.168.2.2"
user = "root"
password = "123456"
class sshChannel:
def __init__(self, cfg_obj, timeout_s=5, port=22):
self._cfg = cfg_obj
self.ssh_connect_timeout = timeout_s
self.port = port
self.ssh = self.connect_server()
def connect_server(self):
ssh_cli = paramiko.SSHClient()
key = paramiko.AutoAddPolicy()
ssh_cli.set_missing_host_key_policy(key)
try:
ssh_cli.connect(self._cfg.host, port=self.port, username=self._cfg.user, password=self._cfg.password,
timeout=self.ssh_connect_timeout)
except paramiko.ssh_exception.SSHException:
print("連接{}失敗, 請(qǐng)檢查配置或重試".format(self._cfg.host))
ssh_cli.close()
return ssh_cli
def execute_cmd(self, cmd):
"""
:param cmd: 單個(gè)命令
:return: 服務(wù)器的輸出信息
"""
stdin, stdout, stderr = self.ssh.exec_command(cmd)
self.ssh.close()
return stdout.read().decode('utf-8')
def execute_cmd_list(self, cmd_list):
"""
:param cmd: 命令列表
:return: 服務(wù)器的輸出信息的列表
"""
out_list = list(map(self.execute_cmd, cmd_list))
return out_list
def test_get_sys_version(self):
sys_version = self.execute_cmd("lsb_release -rd")
print(sys_version)
def test_get_sys_disk_free_and_memory_free(self):
sys_info = self.execute_cmd_list(["df -h -BG /", "free -m"])
print(sys_info)
if __name__ == '__main__':
server = sshChannel(cfg)
server.test_get_sys_version()
server.test_get_sys_disk_free_and_memory_free()
到此這篇關(guān)于Python使用paramiko連接遠(yuǎn)程服務(wù)器執(zhí)行Shell命令的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Python使用paramiko連接遠(yuǎn)程服務(wù)器執(zhí)行Shell命令內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python利用paramiko實(shí)現(xiàn)基本的SSH客戶端操作
- Python使用Paramiko實(shí)現(xiàn)輕松判斷文件類型
- Python基于paramiko庫(kù)操作遠(yuǎn)程服務(wù)器的實(shí)現(xiàn)
- Python Paramiko創(chuàng)建文件目錄并上傳文件詳解
- python的paramiko模塊基本用法詳解
- Python運(yùn)維自動(dòng)化之paramiko模塊應(yīng)用實(shí)例
- Python中paramiko模塊的基礎(chǔ)操作與排錯(cuò)問題
- Python遠(yuǎn)程SSH庫(kù)Paramiko詳細(xì)操作
- python運(yùn)維自動(dòng)化Paramiko的實(shí)現(xiàn)示例
相關(guān)文章
Python web框架fastapi中間件的使用及CORS跨域問題
fastapi "中間件"是一個(gè)函數(shù),它在每個(gè)請(qǐng)求被特定的路徑操作處理之前,以及在每個(gè)響應(yīng)之后工作,它接收你的應(yīng)用程序的每一個(gè)請(qǐng)求,下面通過(guò)本文給大家介紹Python web框架fastapi中間件的使用及CORS跨域問題,感興趣的朋友一起看看吧2024-03-03
全網(wǎng)最細(xì) Python 格式化輸出用法講解(推薦)
這篇文章主要介紹了全網(wǎng)最細(xì) Python 格式化輸出用法講解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
利用插件和python實(shí)現(xiàn)Excel轉(zhuǎn)json的兩種辦法
轉(zhuǎn)換Excel表格到JSON格式有很多方法,下面這篇文章主要給大家介紹了關(guān)于利用插件和python實(shí)現(xiàn)Excel轉(zhuǎn)json的兩種辦法,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11
解決Numpy中sum函數(shù)求和結(jié)果維度的問題
今天小編大家分享一篇解決Numpy中sum函數(shù)求和結(jié)果維度的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12
python?pyaudio音頻錄制的實(shí)現(xiàn)
這篇文章主要介紹了python?pyaudio音頻錄制的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
OpenCV圖像縮放之cv.resize()函數(shù)詳解
resize函數(shù)opencv中專門用來(lái)調(diào)整圖像大小的函數(shù),下面這篇文章主要給大家介紹了關(guān)于OpenCV圖像縮放之cv.resize()函數(shù)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09
Python使用python-docx庫(kù)復(fù)制Word文檔樣式的實(shí)現(xiàn)方法
在日常辦公中,我們經(jīng)常需要處理Word文檔的格式調(diào)整、內(nèi)容更新等任務(wù),本文將介紹如何使用python-docx庫(kù)來(lái)復(fù)制一個(gè)Word文檔的內(nèi)容及樣式,并展示如何利用此方法進(jìn)行文檔內(nèi)容的自動(dòng)化處理,需要的朋友可以參考下2025-05-05

