Sie sind nicht angemeldet.

1

14.09.2006, 17:56

TTY-ausgabe mit Putty ansehen

Hallo

Ist es möglich mit Putty anzeigen zu lassen was grade zum beispiel auf tty9 läuft?
Also quasi die tty ausgabe zusätzlich auf pts leiten?

Imhotep

followed the white rabbit

Beiträge: 1 530

Wohnort: Leipzig

Beruf: Informatiker

  • Nachricht senden

2

16.09.2006, 14:54

Mit tee kannst du die Ausgaben aufteilen und somit einmal ausgeben und in einer Datei speichern. Um dann die Ausgaben auf eine Konsole oder Terminal umzuleiten, musst du als Dateiname den der Konsole angeben, falls es ein Terminal ist, der des Terminals

Quellcode

1
2
echo "Hallo" | tee /dev/pts/1
echo "Hallo" | tee /dev/tty1

die erste Zeile gibt auf der Konsole, die du als erstes gestartet hast aus, die zweite auf dem ersten Terminal (Strg+Alt+1)
Für den Terminal brauchst du evtl. Adminschreibrechte, musst du mal in deinem /dev-Verzeichnis überprüfen. Wie kritisch es ist, den Zugriff allgemein zu erlauben, weiß ich nicht.
localhost,
sweet localhost

3

16.09.2006, 15:15

hmmm
ich hab das grade mal ausprobiert aber das is leider "nicht ganz" das was ich suche!

Nochmal zur erklärung!
Ich habe auf einer tty (zum Beispiel Schirm 9) ein programm laufen.
Jetzt möchte ich per fernwartung (also putty) gerne sehen was dieses programm grade macht!
Wenn ich das mit tee machen wollte müsste ich ja quasi das programm starten und dann wissen auf welche pts ich das ausgeben will!
also so: programm| tee >/dev/pts/5

Allerdings weiß ich ja nie genau meine pts!
Denn je nachdem wieviele putty sessions ich auf habe habe ich ja immer eine andere!

Was ich am liebsten möchte, ist eine putty session auf machen und dann nach bedarf mir den schirm 9 (oder welchen auch immer) auf das terminal ziehen!

Imhotep

followed the white rabbit

Beiträge: 1 530

Wohnort: Leipzig

Beruf: Informatiker

  • Nachricht senden

4

16.09.2006, 18:10

Das wär ja dann eine Server-Client-Sache, zweifle, dass du das mit normalen Mitteln hin kriegts.
Einizig, was du machen kannst, dir mit tee das ganze in eine Datei umleiten und die letzten Zeilen der Datei ausgeben lassen. Mit head erhälst du die letzen Zeilen einer Datei mit -n kannst du die Anzahl bestimmen.
localhost,
sweet localhost

5

16.09.2006, 18:25

Leider krieg ich das nicht hin das in eine datei umzulenken!
Kann daran liegen das ich versuche den aufruf eines Binärprogrammes in eine Datei umzuleiten und das geht nicht!!!

Ich hab mir schon gedacht das das alles wohl nicht geht!
Wäre halt nur ein "nice to have" gewesen:(

Trotzdem Danke für die Mühe

Imhotep

followed the white rabbit

Beiträge: 1 530

Wohnort: Leipzig

Beruf: Informatiker

  • Nachricht senden

6

16.09.2006, 20:38

Binär Programm? Dachte du redest von Ausgaben eines Programms.
localhost,
sweet localhost

7

16.09.2006, 21:28

hi keinerrr,

mit screen geht das

Quellcode

1
2
Screen is a full-screen window manager that multiplexes 
a physical terminal between several processes

hier noch ein paar links:

screen-1
screen-2
screen-3

... den rest liefert dir 'google' und 'man screen'

gruß epikur


PS: ob du auf dem terminal ein binary, ein shell-script oder
sonst was am laufen hast, ist wohl egal =D
wie soll ich wissen, was ich denke?
... bevor ich hoere, was ich sage
... bevor ich lese, was ich schreibe

Imhotep

followed the white rabbit

Beiträge: 1 530

Wohnort: Leipzig

Beruf: Informatiker

  • Nachricht senden

8

17.09.2006, 00:12

Klingt ja vielversprechende, muss ich bei Gelegenheit mal testen, danke epikur
localhost,
sweet localhost

9

17.09.2006, 00:35

Also Screen hört sich ziemlich gut an!
Im prinzip funktioniert das auch so ähnlich wie ich mir das vorgestellt habe!

Hab nur noch ein problem.
Und zwar kann ich mein programm (z.B vi) ja mit "screen vi" aufrufen!
Dann startet er mir nen screen und ruft dort vi auf!
Dieser screen soll aber auf tty9 laufen, weil ich das ganze aus einem bash script aufrufe!
Mit "screen vi >/dev/tty9" gehts nicht:)!

Vielleicht bin ich auch nur zu müde und finde morgen ne Lösung:) !

Auf jedenfall vielen Dank schonmal an epikur!!!
Scheinst mich schonmal auf den richtigen weg geschickt zu haben!

10

17.09.2006, 12:15

hi keinerrr,

verabschiede die im geiste von deinem tty9 und der grundidee der umlenkung
und fuehre mit einem einfachen beispiel ein [de|reat]-tach durch, damit wird
die funktionalitaet klar.

.. screen starten

# screen [begruessung mit enter bestaetigen]

.. screen laeuft mit einem virtuellen terminal [auf dem du dich nun befindest]
.. du koenntest jede menge weiterer virt. terminals starten - aber am anfang
.. genuegt mal eines.
.. nun startest du ein programm, das auch eine schoene ausgabe erzeugt.

# top

.. mit 'ctrl-a d' loest du screen mit all seinen laufenden virt. terminals [in diesem
.. fall nur das eine, in dem der befehl top lauft] von deinem start-terminal/-konsole
.. und es erscheint die meldung '[detached]'

.. nun kannst du deinen start-terminal verlassen, die konsole schliessen ....
.. was auch immer, screen laeuft nun im hintergrund wie ein zombie und
.. laesst sich in einem anderen terminal z.b. mit einer neuen verbindung [z.b.
.. mit putty via. ssh] wieder heraufbeschwoeren

# screen -r

.. das ist einfach und klasse =D

viel spass

gruß epikur
wie soll ich wissen, was ich denke?
... bevor ich hoere, was ich sage
... bevor ich lese, was ich schreibe

11

17.09.2006, 13:37

Ich hab das schon verstanden wie screen funktioniert. Das ist nicht das problem!
Aber für meinen zweck ist das scheiße!
Wie gesagt starte ich verschiedene programme über scripte die im hintergrund laufen und da kann ich nicht irgendwelche tastenkombinationen drücken!

Das is aber nicht so schlimm. Scheiße ist nur das ich den Status der programme wenn ich das mit screen mache nicht direkt auf einem tty sehen kann! Und davon kann und will ich mich auch nicht lösen! Dann muss ich mich eher von meiner idee lösen das ganze remote beobachten zu können:(!

Aber immerhin weiß ich nun ein bisschen was über screen!
Das is ja auch was:)!

12

17.09.2006, 20:41

hi keinerrr,

die tastenkombinationen sind nicht notwendig - screen ist sowohl in
cronjobs als auch in start- oder shell-scripts zu verwenden.

du kannst deine programme mit screen aufrufen.

beispiel:

screen -A -d -m -S backup /progverz/script01.sh

screen -A -d -m -S ntpdate /progverz/script02.sh

screen -A -d -m -S update /progverz/script03.sh

kleiner auzug aus der screen-manual

Quellcode

1
2
3
4
5
6
7
8
9
-A      Adapt  the  sizes of all windows to the size of the current terminal.  
        By default, screen tries to restore its old window sizes when attaching to
        resizable terminals (those with "WS" in its description, e.g. suncmd 
        or some xterm).
-d -m   Start  screen  in  "detached"  mode.  This  creates  a new session but 
        doesn't attach to it. This is useful for system startup scripts.
-S      sessionname   When  creating  a new session, this option can be used to
        specify a meaningful name for the session. This name identifiesthe session for
        "screen -list" and "screen -r" actions. It substitutes the default [tty.host] suffix.

... ein 'screen -r' wird die screen-prozesse listen, z.b.:

# screen -r
There are several suitable screens on:
23130.ntpdate (Detached)
23134.backup (Detached)
23138.update (Detached)
Type "screen [-d] -r [pid.]tty.host" to resume one of them.

... ein 'screen -r screenTermName' reattached diesen und befoerdert ihn
auf dein aktuelles terminal, z.b.:

# screen -r 23134.backup

gruß epikur
wie soll ich wissen, was ich denke?
... bevor ich hoere, was ich sage
... bevor ich lese, was ich schreibe

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »epikur« (17.09.2006, 20:42)


13

17.09.2006, 20:54

Ja danke erstmal für deine Mühe.
Sowas dachte ich mir aber schon, deshalb hab ich ja auch gesagt das das mit den tastenkombinationen nicht so schlimm wäre.

Das problem is das ich die ausgaben PRIMÄR auf schirm 9 brauche! Und ich mich da nicht erst anmelden möchte und dann mit screen -r mir den screen ranziehen will!
Das soll automatisch da angezeigt werden!
Deswegen komme ich mit screen anscheinend nicht weiter!
Du sagtest ja ich soll mich von der Idee lösen aber das wird nix:)!!!!!

Ich weiß ich bin kompliziert.Ist aber leider so:)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »keinerrr« (17.09.2006, 20:55)


Imhotep

followed the white rabbit

Beiträge: 1 530

Wohnort: Leipzig

Beruf: Informatiker

  • Nachricht senden

14

19.09.2006, 09:49

Dann mach doch eine Kombination aus screen und der Methode, die ich erklärt habe.
1. in screen wird das Programm gestartet (verpackt in ein Shell-Script)
2. mit tee leitest du die Ausgaben nach tty9 um, die Konsolenausgaben verbleiben dann in screen.
3. Die Ausgaben werde, da sie dahin umgeleitet werden auf tty9 gezeigt
4. wenn du sie wo anderst anschauen willst, musst du dich in der screen session anmelden.

Das Shell-Script sähe dann vom Prinzip so aus

Quellcode

1
2
#!/bin/sh
Programm | tee /dev/tty9

Dieses Script startest du dann in screen, kannst du ja per cronjob so einstellen, dass es gleich nach dem Starten des Systems loslegt oder du startest es manuell.

Konnt das jetzt nicht testen, aber vom Prinzip sollte es so laufen können.
localhost,
sweet localhost

15

19.09.2006, 17:52

Ahhhh Geil, das geht

Vielen vielen Dank, das du mich nicht aufgegeben hast!:)

:+++: Daumen hoch

Thema bewerten