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 中 进行拖拽,复制模块儿

相关推荐
珠海西格电力科技20 分钟前
微电网能量平衡理论的实现条件在不同场景下有哪些差异?
运维·服务器·网络·人工智能·云计算·智慧城市
A星空12333 分钟前
一、Linux嵌入式的I2C驱动开发
linux·c++·驱动开发·i2c
释怀不想释怀38 分钟前
Linux环境变量
linux·运维·服务器
zzzsde44 分钟前
【Linux】进程(4):进程优先级&&调度队列
linux·运维·服务器
凡人叶枫1 小时前
C++中智能指针详解(Linux实战版)| 彻底解决内存泄漏,新手也能吃透
java·linux·c语言·开发语言·c++·嵌入式开发
yuanmenghao1 小时前
Linux 性能实战 | 第 7 篇 CPU 核心负载与调度器概念
linux·网络·性能优化·unix
qq_297574672 小时前
Linux 服务器 Java 开发环境搭建保姆级教程
java·linux·服务器
70asunflower2 小时前
Emulation,Simulation,Virtualization,Imitation 的区别?
linux·docker
聆风吟º2 小时前
CANN开源项目实战指南:使用oam-tools构建自动化故障诊断与运维可观测性体系
运维·开源·自动化·cann
神梦流2 小时前
ops-math 算子库的扩展能力:高精度与复数运算的硬件映射策略
服务器·数据库