Ich versuche im Grunde, einen PStree-ähnlichen Befehl zu schreiben, außer dass es Prozesse auf Maschinen folgen sollte.Folgen Sie pds über Maschinen (SSH)
Was ich meine ist, dass, wenn ich dies auszuführen:
$ ssh $node sleep 1000
Dann sollte der Befehl etwa wie folgt angezeigt:
ssh $node -- ($node) sleep 1000
Und wenn ich laufen:
$ ssh $node ssh $node sleep 1000
ssh $node---($node) ssh $node---($node) sleep 1000
Und so weiter ...
Meine Frage lautet: Wie kann ich eine SSH-Sitzung auf einem Computer einem erstellten Prozess auf einem anderen Computer zuordnen?
Lokale Parent-Child-Prozesse sind kein Problem, aber wie kann ich herausfinden, welcher ssh-Befehl auf einem Knoten einen anderen Prozess auf einem anderen Knoten ausgelöst hat?
Linux 2.6.18
nur openSSH für "remote" stuff. OpenSSH_4.3p2 läuft derzeit.
SSH Zugriff auf alle Knoten natürlich (key-basierte Auth) so ps und netstat sind von allen Knoten verfügbar.
Linux-nur "Hacks" sind in Ordnung, muss nicht tragbar sein, obwohl das natürlich ein zusätzlicher Bonus wäre.
Der Benutzer wird immer derselbe sein und mein Befehl/Skript wird als dieser Benutzer ausgeführt. Dieser Benutzer ist nicht root.
Muss nicht schnell sein, nur genau.
Die spontane Lösung einen pstree
Klon schreiben würde, die auf der Befehlszeichenfolge „ssh
“ auslöst, Zahlen, die Quelle-Port aus und geht dann zu dem Remote-Rechner in Frage und findet heraus, welche von sshd
Kinder, die von diesem bestimmten Befehl hervorgebracht wurde.
Aber vielleicht gibt es einen schlaueren Weg? : P
Ich verstehe die Frage nicht vollständig. Was meinst du mit "Mapping" einer SSH-Sitzung? Möchtest du deine SSH-Sitzung benennen? (Dann ist die schöne Anwendung Bildschirm würde mein Zeiger auf die Lösung) – Karussell
ich die Prozess-ID des Befehls abbilden wollen: „ssh $ node Schlaf 1000“ bis auf die Prozess-ID des Befehls: "Schlaf 1000" auf dem Remote-Rechner ($ Knoten). – user268744