2016-12-21 3 views
-1

In Python verwende ich Paramiko, um ein Remote-Gerät zu ssh. Nun möchte ich eine Echtzeit-Datenaufzeichnung (Zeit gegen Durchsatz) von der resultierenden Ausgabe haben, die im Grunde Durchsatzmessung zwischen zwei Modulen ist. Kann mir jemand dabei helfen? Danke im Voraus. Der Code und die resultierende Ausgabe teile ich hier zu Ihrem besseren Verständnis.Benötigen Sie Unterstützung bei der Erstellung eines Echtzeit-Datenplots?

import sys 
 
import time 
 
import select 
 
import paramiko 
 

 
host = '169.254.115.1' 
 
i = 1 
 

 
# 
 
# Try to connect to the host. 
 
# Retry a few times if it fails. 
 
# 
 
while True: 
 
    print ('Trying to connect to %s (%i/3)' % (host, i)) 
 

 
    try: 
 
     ssh = paramiko.SSHClient() 
 
     ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
 
     ssh.connect(host, port=22, username='user', password='user') 
 
     print ("Connected to %s" % host) 
 
     break 
 
    except paramiko.AuthenticationException: 
 
     print ("Authentication failed when connecting to %s") % host 
 
     sys.exit(1) 
 
    except: 
 
     print ("Could not SSH to %s, waiting for it to start" % host) 
 
     i += 1 
 
     time.sleep(2) 
 

 
    # If we could not connect within time limit 
 
    if i == 3: 
 
     print ("Could not connect to %s. Giving up") % host 
 
     sys.exit(1) 
 

 
# Send the command (non-blocking) 
 
stdin, stdout, stderr = ssh.exec_command("cd /opt/cohda/test; sudo ./runtest_iperf_tx.sh") 
 

 
# Wait for the command to terminate 
 
while not stdout.channel.exit_status_ready(): 
 
    # Only print data if there is data to read in the channel 
 
    if stdout.channel.recv_ready(): 
 
     rl, wl, xl = select.select([stdout.channel], [], [], 0.0) 
 
     if len(rl) > 0: 
 
      # Print data from stdout 
 
      print (stdout.channel.recv(1024)), 
 
# 
 
# Disconnect from the host 
 
# 
 
print ("Command done, closing SSH connection") 
 
ssh.close()

Throughput or resultant output

+0

Zeigen Sie den Code, den Sie bisher –

+0

gemacht haben Sie bitte einen Blick auf meinen Beitrag wieder und klicken Sie auf: Sehen Sie den Code hier –

+1

Sie sollten den Code in Ihrer Antwort als Text einfügen, nicht Bild. – IanS

Antwort

0

Wenn ich mit diesem Problem damit beauftragt wurden, würde ich mit Bokeh betrachten, weil es Sie in Python-Code ermöglicht, und können zur Visualisierung von Datenaktualisierungen streamen: http://bokeh.pydata.org/en/latest/

Aber es gibt sicherlich viele Möglichkeiten, es zu tun, und viele Alternativen!

Verwandte Themen