paramiko Verständnisproblem

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
chw80
User
Beiträge: 5
Registriert: Mittwoch 20. November 2019, 14:01

Hallo,

ich denke ich habe hier ein kleines Verständnisproblem mit paramiko.
Ich habe versucht eine Verbindung zu einem Server zu erstellen - dies gelingt auch ohne eine Fehlermedlung, jedoch bekomme ich als Ausgabe nur [ ] angezeigt.

Ich denke dass er den Befehl "show uptime" nicht absetzt. Warum kann ich mir leider nicht erklären.

import time
import paramiko

user_name="user"
passwd="passwort"
ip="192.168.x.x"

ssh_client=paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_client.connect(hostname=ip,username=user_name,password=passwd)
stdin, stdout, stderr = ssh_client.exec_command('show uptime')
stdout=stdout.readlines()

print (stdout)

ssh_client.close()
time.sleep(5)

Gruß
chw80
nezzcarth
User
Beiträge: 1764
Registriert: Samstag 16. April 2011, 12:47

chw80 hat geschrieben: Donnerstag 21. November 2019, 15:06 Ich denke dass er den Befehl "show uptime" nicht absetzt. Warum kann ich mir leider nicht erklären.
Gegenfrage: Bist du sicher, dass 'show uptime' ein korrekter Befehl ist (ein standardmäßiges Unix Kommando ist es meines Wissens nach jedenfalls nicht; das wäre nur 'uptime')? Hast du dir mal den Inhalt von stderr ausgeben lassen? Ansonsten sollte es nämlich eigentlich funktionieren.
Fire Spike
User
Beiträge: 329
Registriert: Montag 13. Mai 2019, 16:05
Wohnort: Erde

"show uptime" gibt es nicht, weil "show" nicht existiert, aber "uptime" funktioniert wie es soll😉
nezzcarth
User
Beiträge: 1764
Registriert: Samstag 16. April 2011, 12:47

Fire Spike hat geschrieben: Donnerstag 21. November 2019, 19:42 "show uptime" gibt es nicht, weil "show" nicht existiert
Na ja, das würde ich so absolut nicht formulieren, da die Varianz in dem Bereich einfach viel zu groß ist. 'show' ist halt kein Standardkommando unter den bekannteren Unix-artigen Systemen. Aber natürlich kann es existieren und sonst wo herkommen (OS, irgendeine Software, selbstgeschrieben, ...). Das ist alles, was man dazu sagen kann. Warten wir einfach die Auskunft des Fragestellers ab. ;)
chw80
User
Beiträge: 5
Registriert: Mittwoch 20. November 2019, 14:01

Hi,

bei dem System was wir verwenden funktioniert der Befehl direkt in einer ssh-Session.
Als Ausgabe kommt dann: 07:47:07 up 19:24, 1 users, load average: 1.25, 1.20, 1.16
Habe mir nun das stderr ausgeben lassen und bekomme dann die Meldung: ['show uptime: No such file or directory\n']
nezzcarth
User
Beiträge: 1764
Registriert: Samstag 16. April 2011, 12:47

Das entspricht soweit der gewohnten Ausgabe von 'uptime' und du könnst meiner Meinung nach vermutlich einfach das verwenden. Du kannst ja zur Sicherheit Mal vergleichen, ob beide dieselbe Ausgabe liefern.

Es kann sein, dass 'show' nur in interaktiven Sitzungen verfügbar ist (z.B. weil es ein Alias ist oder weil die PATH Variable erweitert wurde) Das kannst du etwa mit 'command -v show' bzw 'type show' in einer interaktiven Sitzung testen.
Antworten