python telnetlib登录服务器并获取命令执行结果

python使用自带的telnetlib库登录服务器,执行命令并获取结果。

import telnetlib

def do_telnet(Host, port, commands):
    '''
    telnet连接服务器,执行命令,并获取命令结果
    :param Host: 服务器地址
    :param port: 服务器端口
    :param commands: 命令列表
    :return: 执行命令结果
    '''
    # 连接Telnet服务器
    tn = telnetlib.Telnet(Host, port, timeout=20)
    tn.set_debuglevel(2)
    # 执行命令,获取结果
    result =  Get_telnet(tn, commands)
    # 关闭连接
    tn.close()
    return  result

def Get_telnet(tn, commands):
    """
    在telnet中执行命令,并获取命令对应的结果数据
    :param tn: telnet.client实例
    :param commands: 命令列表
    :return: 命令及结果的字典型数据
    """
    # 获取结果
    dict = {}
    for command in commands:
        # 执行命令
        tn.write('%s\n' % command)
        a = []
        data = []
        result = str()
        # 获取命令执行结果
        while True:
            b, c, d = tn.expect(a, timeout=1)
            print d
            result += d

            if b == 0:
                print 'There are more data!!'
                tn.write(r' ')
            else:
                break
        print 'Get result success.'
        # 获取有效数据
        a = result.split('\r\n')
        # 数据去重
        for i in a:
            if i != '' and not i in data:
                data.append(i)
        dict[command] = data

    return dict

def main():
    # 连接redis库,获取数据
    Host = '127.0.0.1'
    port = '6379'
    commands = ['smembers jls_event_noble_big_sale_reward_open_sign_5','smembers jls_event_noble_big_sale_reward_open_sign_4']
    data = do_telnet(Host, port, commands)
    print data

if __name__ == '__main__':
    main()

代码执行结果:

在这里插入图片描述

  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值