首页 > 编程语言 >python ssh 交互式命令行脚本,查找关键字,进行下一步命令操作。

python ssh 交互式命令行脚本,查找关键字,进行下一步命令操作。

时间:2022-10-18 17:46:53浏览次数:46  
标签:username __ python self ssh 交互式 input output

import paramiko
import json
import time
from paramiko.ssh_exception import NoValidConnectionsError
from paramiko.ssh_exception import AuthenticationException


class SSHConnection():
    def __init__(self, hostname, port, username, password):
        self.hostname = hostname
        self.port = port
        self.username = username
        self.password = password
        try:
            self.connect()
        except (AuthenticationException, NoValidConnectionsError, TimeoutError) as e:
            print(e)

        stdin, stdout, stderr = self.ssh.exec_command('system identity pr')
        output = stdout.read().decode()
        self.identity = output.split(':')[1].strip()

    def connect(self):
        self.ssh = paramiko.SSHClient()
        self.ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        self.ssh.connect(hostname=self.hostname, port=self.port, username=self.username, password=self.password)

    def run(self, input):
        output = self.cmd(input)
        # self.close()
        return output


    def cmd(self, input):
        stdin, stdout, stderr = self.ssh.exec_command(input)
        output = stdout.read().decode()
        # prompt = '[%s@MikroTik] > %s\n' % (self.username, input)
        prompt = '[%s@%s] > %s\n' % (self.username, self.identity, input)
        print(prompt + output)
        return output


    def close(self):
        self.ssh.close()


if __name__ == '__main__':
    ssh = SSHConnection('192.168.64.201', 22, '路由器账号', '路由器密码')

    output = ssh.run('int pppoe-client pr')

    if output.find('R name="pppoe-out27"') >= 0:
        ssh.run('/ip pool set test ranges=1.1.1.27')

    ssh.close()

 

标签:username,__,python,self,ssh,交互式,input,output
From: https://www.cnblogs.com/itfat/p/16803420.html

相关文章

  • python打包成exe
    一、pyInstaller介绍PyInstaller是一个跨平台的Python应用打包工具,能够把 Python 脚本及其所在的 Python 解释器打包成可执行文件。具体可以参考官网 二、安装pyi......
  • 通过Python脚本在系统中操作django orm
    OK,话不多说直接上代码importosimportdjangoos.environ.setdefault('DJANGO_SETTINGS_MODULE','tunny.settings')#对应app下面的配置文件django.setup()#导......
  • python基础:模块简介、模块的语句、绝对导入和相对导入
    python基础:模块简介、模块的语句、绝对导入和相对导入目录一、索引取值与迭代取值的差异二、模块简介三、模块的分类四、导入模块的两种句式1.import句式2.from...import......
  • 19、python模块 模块的导入和使用
    目录一、模块1、简介2、模块的表现形式二、模块的分类1、自定义模块2、内置模块3、第三方模块三、导入模块的句式学前须知:1、import句式2、from...import...句式3、补充说......
  • python 打包离线环境 pip安装
    1、有网并且网速快时:生成的依赖文件pipfreeze>requirements.txt在新环境直接pipinstall-rrequirements.txtpipinstall-rrequestment.txt路径--target=安装目......
  • python实现计时器
    importtimeclassTimer:def__init__(self,func=time.perf_counter):self.elapsed=0.0self._func=funcself._start=None......
  • RHCE第四章 SSH远程登录服务器
    连接加密技术简介     ssh基于tcp协议  端口号:22目前常见的网络数据包加密技术通常是通过“非对称密钥系统”来处理的。主要通过两把不一样的公钥与私钥来进......
  • Jmeter添加JSR223对Python的支持
    通过下载:org.python:jython-standalone:2.7.2-MavenCentralRepositorySearchjython-standalone-2.7.2.jar放置到\lib\ext下即可: 打开JSR223取样器即可选择pyt......
  • python常用库
    一、python爬虫常用库Python在编写网络爬虫常用到库主要包括urllib、requests、lxml、fake-useragent、bs4(BeautifulSoup)、grab、pycurl、urllib3、httplib2、RoboBrow......
  • 【Python】省略号(...)在Python中的三种用法
    https://blog.csdn.net/weixin_40908748/article/details/106252884https://zhuanlan.zhihu.com/p/489862322https://zhuanlan.zhihu.com/p/489862322 省略号(...)在......