Wie man ssh reinlegt, top startet und die ssh-Sitzung mit einem benutzerdefinierten ~ / .toprc beendet

485
jesse_partman

Wenn ich mich über SSH bei meinem Remote-Host anmelde und top laufe, wird die Konfigurationsdatei ~ / .toprc abgerufen. Ich kann den folgenden Befehl auch erfolgreich ausführen

ssh -t <user>@<host> "top -b > top.dat" 

Dies hält jedoch die ssh-Sitzung für immer offen. Ich möchte eine SSH-Sitzung verwenden, um einen Top-Batch-Prozess zu starten und die SSH-Sitzung zu beenden. Das Problem, das ich habe, ist alles, was ich ausprobiert habe. Entweder funktioniert die ~ / .toprc-Konfigurationsdatei nicht.

Folgendes habe ich ausprobiert:

ssh <user>@<host> "top -b > top.dat &" ssh -f <user>@<host> "top -b > top.dat" ssh -f <user>@<host> "nohup top -b > top.dat &" ssh <user>@<host> "nohup top -b > top.dat &" ssh -f <user>@<host> "nohup top -b > top.dat" 

Alle mit den gleichen Ergebnissen, wenn Sie ~ / .toprc nicht aufnehmen

ssh -t <user>@<host> "top -b > top.dat &" 

Top-Exits, wenn die SSH-Sitzung geschlossen ist (sofort)

ssh -ft <user>@<host> "top -b > top.dat" ssh -ft <user>@<host> "nohup top -b > top.dat &" ssh -ft <user>@<host> "nohup top -b > top.dat" 

Übernimmt ~ / .toprc nicht und beschwert sich, dass das Pseudo-Terminal nicht zugewiesen wird, da stdin kein Terminal ist

Kann jemand erklären, warum das so ist? Top sagt, es würde $ HOME / .toprc lesen. Ich habe bestätigt, dass in allen diesen Fällen $ HOME gesetzt ist und $ HOME / .toprc vorhanden ist. Was ist an diesen beiden Methoden so, dass asynchrone Aufrufe die Konfigurationsdatei nicht abrufen?

Vielen Dank.

BEARBEITEN 1

Hier ist mein Ziel

top's Config File (Linux processes with windows) Id:i, Mode_altscr=0, Mode_irixps=1, Delay_time=1.0, Curwin=0 Def fieldscur=�������ķ���&')*+,-./012���������FGHIJKLMN��QRSTUVWXYZ[\]^_`abcdefghij winflags=193840, sortindx=18, maxtasks=0, graph_cpus=0, graph_mems=0 summclr=1, msgsclr=1, headclr=3, taskclr=1 Job fieldscur=�����(��Ļ�@<��)*+,-./012568>?ABCFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij winflags=193844, sortindx=0, maxtasks=0, graph_cpus=0, graph_mems=0 summclr=6, msgsclr=6, headclr=7, taskclr=6 Mem fieldscur=���<�����MBN�D34��&'()*+,-./0125689FGHIJKLOPQRSTUVWXYZ[\]^_`abcdefghij winflags=193844, sortindx=21, maxtasks=0, graph_cpus=0, graph_mems=0 summclr=5, msgsclr=5, headclr=4, taskclr=5 Usr fieldscur=�����������)+,-./1234568;<=>?@ABCFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij winflags=193844, sortindx=3, maxtasks=0, graph_cpus=0, graph_mems=0 summclr=3, msgsclr=3, headclr=2, taskclr=3 Fixed_widest=0, Summ_mscale=0, Task_mscale=0, Zero_suppress=0 

BEARBEITEN 2

Entschuldigung ... Beide Maschinen sind keine Redhat 7. Ich habe nicht gedacht, als ich das sagte. Ich sshing von einer Redhat-Maschine zu einer Maschine, auf der yocto-linux mit einem dropbear-ssh-Server ausgeführt wird. Ich habe auch openssh getestet. Es ist wahrscheinlich der ssh-Server in den yocto-Rezepten, der das Problem verursacht. Ich habe Redhat gerade mit Redhat getestet und es funktioniert wirklich.

1
ssh -ft host -l user "nohup top -b> top.out" funktionierte auf Debian9-Hosts einwandfrei. es las ~ / .toprc. wie sieht dein toprc aus? Raouf M. Bencheraiet vor 6 Jahren 0
@ RaoufM.Bencheraiet Ich habe gerade meine toprc-Datei hinzugefügt. Siehe Bearbeiten 1. Ich sollte auch nicht als root-Benutzer angemeldet sein. jesse_partman vor 6 Jahren 0
Ich dachte nicht daran, diese Frage zu stellen: Was passiert, wenn Sie sich normal anmelden und anstatt Top-B mit der Ausgabe von Top zu starten, was meiner Meinung nach passiert, ist, dass das Flag -b eine Menge Dinge deaktiviert von oben Ausgabe / Eingabe. Raouf M. Bencheraiet vor 6 Jahren 0
@ RaoufM.Bencheraiet 'top -b' funktioniert, wenn ich den Befehl manuell einschalte und den Befehl ausführt. Entschuldigung, ich habe mich früher über Redhat -> Redhat geirrt. Siehe Bearbeiten 2. jesse_partman vor 6 Jahren 0

0 Antworten auf die Frage