SSH Output buffering abschalten

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

SSH Output buffering abschalten

Beitrag von roli » 09.07.2012 16:06:50

Hi,

mir ist aufgefallen das es auf einem (HP-UX) Server einen Unterschied mach, ob ich
1) mich per SSH anmlede, und dann ein Script ausführe
2) oder ob ich es direkt von remote via

Code: Alles auswählen

ssh $server "script.pl $1"
aufrufe.
In Fall 1. wird der Output schön Zeile für Zeile ausgegeben, "so wie er halt anfällt". So sehe ich halt wie das Script arbeitet.
Wenn ich's aber wie in 2. beschrieben aufrufe, passiert erstmal nichts, und dann wird der komplette Output auf einmal angezeigt.

Was muß ich anstellen um das Script wie in 2. beschrieben aufrufen zu können, aber direkt zu sehen wie es arbeitet?
Ich gehe mal davon aus, das da irgendwo ein "buffering" erfolgt, habe die Stelle aber bislang noch nicht gefunden. Es nützt auch nichts, wenn ich ssh mit dem Parameter "-t" aufrufe.
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

gbotti
Beiträge: 846
Registriert: 16.07.2010 14:24:43
Wohnort: München

Re: SSH Output buffering abschalten

Beitrag von gbotti » 09.07.2012 16:37:43

Hi.

Ich muss bei mir garnichts machen. Bei mir funktioniert das auch so. Jedoch dauert es ein wenig, bis die SSH-Verbindung aufgebaut ist und dann laufen die Scripts. Ist es vielleicht 'schnell' fertig?
Georg
RTFM, LMGTFY, Orakel... Ach... Warum muss man suchen...
Schrödingers Backup --- "Der Zustand eines Backups ist unbekannt, solange man es nicht wiederherstellt" --- Quelle: Nixcraft

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: SSH Output buffering abschalten

Beitrag von Cae » 09.07.2012 17:07:48

Kompression braucht erstmal Daten, die sie komprimieren kann, die müssen irgendwo gepuffert werden. Vielleicht liegt es daran, allerdings kenne ich das Verhalten nicht und der Puffer dürfte auch im Byte-Bereich liegen. Der folgende Auszug aus sshd_config(5) hat nach nochmaligem Lesen allerdings nichts mit dem Problem zu tun:

Code: Alles auswählen

     Compression
             Specifies whether compression is allowed, or delayed until the
             user has authenticated successfully.  The argument must be “yes”,
             “delayed”, or “no”.  The default is “delayed”.
Ich lasse ihn trotzdem mal stehen, sonst sieht das so leer aus hier.

Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Re: SSH Output buffering abschalten

Beitrag von roli » 12.07.2012 11:53:30

Hi,
gbotti hat geschrieben:Ist es vielleicht 'schnell' fertig?
Ich denke nicht. Ein Messen mittels time nachdem ich mich wie in 1) beschrieben per SSH anmelde ergibt:

Code: Alles auswählen

real    0m48.44s
user    0m36.13s
sys     0m0.95s
Ich habe es dann eben auch mal wie in 2) beschrieben aufgerufen, die Laufzeit war/ist nahezu identisch.
Wenn das zu schnell sein sollte? Wie sieht's aus, hat noch jemand eine Idee?
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: SSH Output buffering abschalten

Beitrag von rendegast » 12.07.2012 14:27:51

viewtopic.php?f=32&t=136788&hilit=term
Da gab es keine debconf-Ausgabe, da
'ssh host'
'ssh host command' (-> TERM=dumb)
unterschiedliche TERM benutzen, und die Software (debconf) sich daran orientierte.

Dem analog versuche mal

Code: Alles auswählen

ssh host "TERM=xterm script.pl $1"

(war bei mir halt ein grafischer client)
(oder was Dein client halt bei 'set | grep TERM' ausgibt) (zBsp. Textkonsole gibt TERM=linux)
Die Ausgabe war zwar unschön, aber debconf hat damit interaktiv reagiert.



Eine weitere Möglichkeit aus der Manpage wäre der Schalter '-f',
damit ssh selbst in den Hintergrund tritt.
Zuletzt geändert von rendegast am 13.07.2012 13:19:17, insgesamt 1-mal geändert.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Re: SSH Output buffering abschalten

Beitrag von roli » 13.07.2012 10:48:07

Hi,

auf dem HP-UX Server ohne X wird das wohl "nix" ;-} mit dem xterm
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: SSH Output buffering abschalten

Beitrag von Cae » 13.07.2012 11:02:29

Du brauchst da kein xterm, TERM=xterm stellt nur die Umgebungsvariable um, damit das Programm "denkt", es sei im xterm.

Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: SSH Output buffering abschalten

Beitrag von rendegast » 13.07.2012 15:09:11

Der Test läßt sich auch umdrehen, auf einer interaktiven ssh-Shell:

Code: Alles auswählen

$ ssh host 
...
$ TERM=dumb script.pl $argument
sollte dann die ungewünschte Ausgabe produzieren.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Antworten