这是我的代码
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('host', username='usrname', password='pwd)
stdin, stdout, stderr = ssh.exec_command("vmkping ip")
output = stdout.readlines()
我希望能够分辨出收到的数据包的百分比。我还想告诉你ping时是否有错误。输出变量仅将结果存储为字符串列表。
答案 0 :(得分:0)
您可以使用re和string函数处理输出并获取所需的输出。
指定ping命令应尝试的ping次数(这里我提到了一个静态值):
command = "ping -c 5 <ip>"
ssh_stdin, ssh_stdout, ssh_stderr = ssh_connection.exec_command(command)
output = ssh_stdout.read()
error = ssh_stderr.read()
list_output = re.split(',', output)
packet_loss = re.split('packet loss', list_output[2])
print packet_loss[0]
要处理所有类型错误的输出,您可以执行以下操作:
if str(output).find('5 received') > 0:
print "5 packets received"
elif str(output).find('0 received') > 0:
print "0 packet received"
同样,您可以处理输出并找出收到的数据包的百分比。