python SSHTunnelForwarder登录服务器,调用telnet执行命令获取结果

python SSHTunnelForwarder登录服务器,调用telnet执行命令获取结果(GetTelnetData)

# coding:utf-8
'''
Note:
    通过隧道登录服务器,使用telnet链接redis,获取Rdids中的数据
Author:Qredsun
Date:2019/5/31
'''
from sshtunnel import SSHTunnelForwarder
import paramiko
import GetTelnetData
    
def Tunnel(hos_jump, port_jump, username, private_key_path, host_redis, port_redis):
    """
    通过跳板机
    :param host_jump: 跳板机地址
    :param port_jump: 跳板机端口号
    :param username: 登录名
    :param private_key_path: 密钥地址
    :param host_redis: 远程服务器地址
    :param port_redis: 远程服务器端口号
    :return: 通道实例
    """
    rsaKey = paramiko.RSAKey.from_private_key_file(private_key_path) # 获取私钥
    server =  SSHTunnelForwarder(
            (host_jump, int(port_jump)),  # 跳板机的配置 int(port_jump)
            ssh_pkey=rsaKey,
            ssh_username = username,
            remote_bind_address=(host_redis, int(port_redis)), # 连接redis服务器
            local_bind_address=('0.0.0.0', 10022) ) # 开启本地转发端口
    return server

def main():
    host_jump = '47.96.13.10' # 跳板机地址
    port_jump = '6523' # 跳板机端口号
    username= 'jump' # 登录名
    private_key_path = 'private' # 密钥路径
    host_redis = '192.168.80.142'  # redis地址
    port_redis = '6379' # redis 端口号
    # 连接redis库,获取数据
    SeverTunnel = Tunnel(host_jump, port_jump, username, private_key_path, host_redis, port_redis) # 配置跳板登录服务器参数
    SeverTunnel.start() # 连接服务器
    Host = '127.0.0.1'   # Telnet通过本地访问
    commands = ['smembers jls_event_noble_sale_reward_open_sign_5','smembers jls_event_noble_sale_reward_open_sign_4'] # 执行的命令
    port = SeverTunnel.local_bind_port # 获取本地转发接口
    data = GetTelnetData.do_telnet(Host, port, commands) # 获取数据
    SeverTunnel.close() # 关闭服务器
    print data # 输出查询信息


if __name__ == '__main__':
    main()

脚本运行结果:
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值