下面的代码通过SSH在一台机器上运行grep并打印结果:
import sys, os, string
import paramiko
cmd = "grep -h 'king' /opt/data/horror_20100810*"
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('10.10.3.10', username='xy', password='xy')
stdin, stdout, stderr = ssh.exec_command(cmd)
stdin.write('xy\n')
stdin.flush()
print stdout.readlines()
Run Code Online (Sandbox Code Playgroud)
我怎样才能同时打磨五台机器(这样我没有大的延迟),而不是将所有这些都放在五个变量中并将它们全部打印出来.
二进制字段的描述是:
呼叫者号码,用压缩的BCD码表示,剩余比特用"0xF"填充
我试图用struct格式打印,'16c'然后得到:('3', '\x00', '\x02', '\x05', '\x15', '\x13', 'G', 'O', '\xff', '\xff', '\xff', '\xff', '\xff', '\xff', '\xff', '\xff')如果我使用'16b'我得到(51, 0, 2, 5, 21, 19, 71, 79, -1, -1, -1, -1, -1, -1, -1, -1).这是不正确的,我应该得到电话号码,上面的数字是无效的.
print struct.unpack_from('>16b', str(data.read()),offset=46)
Run Code Online (Sandbox Code Playgroud)
上面的代码不起作用,我得到无效的数字.我应该以什么格式解压缩16字节字段以及如何转换BCD代码?
只是一个简单的问题,如何在不修改数字的情况下将百分号添加到数字.我已尝试使用myStyleFont.num_format_str ='0.00%'格式化百分比,但它乘以100但我只需追加百分比.
Ty提前.
问候.
import telnetlib
def telNetCall():
host = "10.200.1.23"
user = "me"
password = "matrix"
telnet = telnetlib.Telnet(host)
telnet.read_until('Username: ', 3)
telnet.write(user + '\r')
telnet.read_until('Password: ', 3)
telnet.write(password + '\r')
telnet.write("sh log"+ "\r\n")
telnet.write('exit' + '\r')
print telnet.read_all()
Run Code Online (Sandbox Code Playgroud)
我的问题是,当我尝试从cisco路由器中获取"show log"时,它只给出了部分结果,我认为这是因为你需要按空格键5次(取决于日志历史记录的多长时间)来获取完整的日志 - 当我这样做manualy,我不知道如何告诉python列出完整的日志.有什么建议吗?