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
Zeigen Sie den Code, den Sie bisher –
gemacht haben Sie bitte einen Blick auf meinen Beitrag wieder und klicken Sie auf: Sehen Sie den Code hier –
Sie sollten den Code in Ihrer Antwort als Text einfügen, nicht Bild. – IanS