Python使用paramiko連接遠程服務器執(zhí)行Shell命令的實現(xiàn)
需求
在自動化測試場景里, 有時需要在代碼里獲取遠程服務器的某些數(shù)據(jù), 或執(zhí)行一些查詢命令,如獲取Linux系統(tǒng)版本號 \ 獲取CPU及內存的占用等, 本章記錄一下使用paramiko模塊SSH連接服務器的方法
1. 先安裝paramiko庫
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("連接{}失敗, 請檢查配置或重試".format(self._cfg.host))
ssh_cli.close()
return ssh_cli
def execute_cmd(self, cmd):
"""
:param cmd: 單個命令
:return: 服務器的輸出信息
"""
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: 服務器的輸出信息的列表
"""
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()
到此這篇關于Python使用paramiko連接遠程服務器執(zhí)行Shell命令的實現(xiàn)的文章就介紹到這了,更多相關Python使用paramiko連接遠程服務器執(zhí)行Shell命令內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python web框架fastapi中間件的使用及CORS跨域問題
fastapi "中間件"是一個函數(shù),它在每個請求被特定的路徑操作處理之前,以及在每個響應之后工作,它接收你的應用程序的每一個請求,下面通過本文給大家介紹Python web框架fastapi中間件的使用及CORS跨域問題,感興趣的朋友一起看看吧2024-03-03
全網(wǎng)最細 Python 格式化輸出用法講解(推薦)
這篇文章主要介紹了全網(wǎng)最細 Python 格式化輸出用法講解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01
利用插件和python實現(xiàn)Excel轉json的兩種辦法
轉換Excel表格到JSON格式有很多方法,下面這篇文章主要給大家介紹了關于利用插件和python實現(xiàn)Excel轉json的兩種辦法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2023-11-11
OpenCV圖像縮放之cv.resize()函數(shù)詳解
resize函數(shù)opencv中專門用來調整圖像大小的函數(shù),下面這篇文章主要給大家介紹了關于OpenCV圖像縮放之cv.resize()函數(shù)的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-09-09
Python使用python-docx庫復制Word文檔樣式的實現(xiàn)方法
在日常辦公中,我們經常需要處理Word文檔的格式調整、內容更新等任務,本文將介紹如何使用python-docx庫來復制一個Word文檔的內容及樣式,并展示如何利用此方法進行文檔內容的自動化處理,需要的朋友可以參考下2025-05-05

