#!/usr/bin/env python # -*- coding: utf-8 -*- """ @Time :2022/3/31 23:00 @Author : @File :LinuxUtil.py @Version :1.0 @Function: pip install paramiko -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com """ import paramiko class LinuxUtil: def __init__(self, ip: str, port: int, name: str, pwd: str): """ 連接Linux服務器 並執行命令 :param ip: :param port: :param name: :param pwd: """ # 創建SSHClient實例對象 self.ssh = paramiko.SSHClient() # 調用方法,標識沒有遠程機器的公鑰,允許訪問 self.ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 連接遠程機器 地址端口用戶名密碼 self.ssh.connect(ip, port, name, pwd) def execCmd(self, cmdStr: str) -> list: """ 執行命令 :param cmdStr: 多個命令用分號隔開 :return: """ # 執行命令(多個命令用分號隔開) stdin, stdout, stderr = self.ssh.exec_command(cmdStr) # 獲取屏幕上的每行數據 return stdout.read().decode().split('\r\n') def close(self): self.ssh.close() if __name__ == '__main__': linuxUtil = LinuxUtil("xxx.xxx.xxx.xxx", 22, "xxxx", "xxxxx") print(*linuxUtil.execCmd("cd /root/zgx/WebTool;cat manage.py | tail -3f"), sep='\n') linuxUtil.close()