telnet 登录执行命令linux

python 复制代码
from telnetlib import Telnet as telnet
from loguru import logger

__EXEC_END__ = "1002"


class TelnetCtr:
    __telnet__ = telnet()
    __user__ = None
    __passwd__ = None
    __Debug__ = None
    __timeout__ = None
    __record__ = tuple()
    __url__ = ""
    __port__ = 0

    def __init__(self, url: str, port: int, **kwargs):
        try:
            self.__url__ = url
            self.__port__ = port
            self.__record__ = kwargs
            self.__passwd__ = kwargs.pop("passwd", None)
            self.__user__ = kwargs.pop("user", None)
            self.__Debug__ = kwargs.pop("debug", None)
            self.__timeout__ = kwargs.pop("timeout", None)
            if self.__Debug__ is not None:
                self.__telnet__.set_debuglevel(self.__Debug__)
            if self.__timeout__ is not None:
                self.__telnet__.open(url, port, timeout=self.__timeout__)
            else:
                self.__telnet__.open(url, port)

            if self.__user__ is not None and self.__passwd__ is not None:
                self.__telnet__.read_until(b"login: ", timeout=self.__timeout__)
                self.__telnet__.write(
                    bytes(self.__user__.encode("utf-8") + "\r\n".encode("utf-8"))
                )
                self.__telnet__.read_until(b"Password: ", timeout=self.__timeout__)
                self.__telnet__.write(
                    bytes(self.__passwd__.encode("utf-8") + "\r\n".encode("utf-8"))
                )

        except SystemError as err:
            logger.error("TelnetCtrol: {}", err.args)

    # {"command":"except result"}
    def command(self, cmd: list) -> dict:
        res = {}
        try:
            for it in cmd:
                self.__telnet__.write(
                    bytes(
                        it.encode("utf-8")
                        + "&& echo EXEC END $((1000+2)) \
                           || echo EXEC END $((1000+2))".encode(
                            "utf-8"
                        )
                        + "\r\n".encode("utf-8")
                    )
                )
                res[it] = self.__telnet__.read_until(
                    "EXEC END 1002".encode("utf-8"), timeout=30
                ).decode("utf-8")

        except SystemError as e:
            logger.error("telnet system error:{}".format(e.args))
        return res

QT 显示 Matplot 的绘画图,位置怎么确定,可以自己构建 ,QT 组件,然后随意拖拽,就可以在自己的UI 界面中随意显示
需要做类的提升
参考这篇博文
https://blog.csdn.net/g11023225/article/details/119274622
绘图 类的模块应用,感谢 github丰富的 代码

python 复制代码
from PyQt5.QtWidgets import*
from matplotlib.backends.backend_qt5agg import FigureCanvas
from matplotlib.figure import Figure

# TODO: MORE SUB PLOT NEED ADD
class matplot(QWidget):
    def __init__(self, parent = None):
        QWidget.__init__(self, parent)        
        self.canvas = FigureCanvas(Figure())
        vertical_layout = QVBoxLayout()
        vertical_layout.addWidget(self.canvas)        
        self.canvas.axes = self.canvas.figure.add_subplot(111)
        self.setLayout(vertical_layout)

可以在 desigin 中 进行拖拽,复制模块儿

相关推荐
wdfk_prog8 小时前
[Linux]学习笔记系列 -- hashtable
linux·笔记·学习
每日出拳老爷子8 小时前
【远程协助】内网 IT 运维远程协助系统的最小可用架构
运维·服务器·远程工作·流媒体·视音频
weixin_462446238 小时前
使用 Puppeteer 设置 Cookies 并实现自动化分页操作:前端实战教程
运维·前端·自动化
CheungChunChiu9 小时前
Linux 内核动态打印机制详解
android·linux·服务器·前端·ubuntu
西***63479 小时前
打破部署桎梏!编码器两大核心架构(NVR/PoE)深度解析
服务器·音视频·视频编解码
BlueBirdssh10 小时前
linux 内核通过 dts 设备树 配置pcie 控制器 各种参数和中断等, 那freeRTOS 是通过直接设置PCIe寄存器吗
linux
小目标一个亿10 小时前
Windows平台Nginx配置web账号密码验证
linux·前端·nginx
实战项目10 小时前
软件测试自动化框架的设计与实现
运维·自动化
Aotman_11 小时前
Element-UI Message Box弹窗 使用$confirm方法自定义模版内容,修改默认样式
linux·运维·前端
Elastic 中国社区官方博客11 小时前
使用 Elastic 中的 OpenTelemetry 为 Nginx 实现端到端分布式追踪的实用指南
大数据·运维·分布式·elasticsearch·搜索引擎·信息可视化·全文检索