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()
代码执行结果: