Anzeige:
Ergebnis 1 bis 5 von 5

Thema: Ausgabe von Konsole anzeigen

  1. #1
    Registrierter Benutzer
    Registriert seit
    Sep 2007
    Beiträge
    31

    Ausgabe von Konsole anzeigen

    Hallo.

    Gibt es ein Programm mit dem ich sozusagen live die Ausgabe einer Konsole anzeigen lassen kann, so wie sie auch dort angezeigt wird?
    Ich würde gerne was auf einer Konsole laufen lassen (z.B. /dev/tty2 oder /dev/pts/3) und den Inhalt dann live auf einem anderen Terminal anzeigen lassen.

    Sozusagen als wenn ich "script -f datei" auf der Startkonsole nutzen würde und dann "tail -f" (gibt es dafür einen geeigneteren Befehl?) auf dem anzuzeigendem Terminal. Nur möchte ich nicht immer typescript zur Initialisierung starten, sondern wenn möglich live vom Prozess auslesen lassen.
    Geändert von Herr Bert (12.08.08 um 14:45 Uhr)

  2. #2
    Registrierter Benutzer
    Registriert seit
    Apr 2007
    Beiträge
    121
    Das könnte man mit einem FIFO-file machen:
    Code:
    $ mkfifo /tmp/fifo
    $ script | tee /tmp/fifo
    Code:
    anderes Terminal:
    cat /tmp/fifo
    Oder wenn du den Programmoutput gespeichert haben möchtest, könntest du tee in eine normale Datei schreiben lassen und im andern Terminal "tail -f" benützen.

  3. #3
    Registrierter Benutzer
    Registriert seit
    Sep 2007
    Beiträge
    31
    Danke für die Hinweise, ich habe mich noch nicht so mit fifos beschäftigt.
    Daher muss ich da noch hintersteigen., wie das genau funktioniert.

    Ich habe mir jetzt einfach ein Skript und ein paar Funktionen geschrieben.
    Die hier habe ich in meine .$SHELLrc getan:

    Code:
    getTty() {
            TTYFILE=`tty | cut -d "/" -f 4`
            if [ -n "$TTYFILE" ]; then
                    TTYFILE=$TTYFILE
                    TTYBASE=`tty | cut -d "/" -f 3`
                            TTY_FILE="${TTYBASE}_${TTYFILE}"
            else
                    TTY_FILE=`tty | cut -d "/" -f 3`
            fi
            echo $TTY_FILE
    }
    
    logUser() {
            groups $USER | grep vcon 1>/dev/null
            if [ "$?" -eq 0 ]; then
                    TTY_FILE=`getTty`
                    if [ ! -d "/tmp/vcon/" ]; then
                            mkdir -m 0770 /tmp/vcon
                            chown $USER:vcon /tmp/vcon
                    fi
                    if [ -e "/tmp/vcon/${TTY_FILE}" ]; then
                            SCRIPT_SWITCH="-a"
                    else
                            touch "/tmp/vcon/${TTY_FILE}"
                            chmod 0770 "/tmp/vcon/${TTY_FILE}"
                            chown $USER:vcon "/tmp/vcon/${TTY_FILE}"
                    fi
                    script -f ${SCRIPT_SWITCH} "/tmp/vcon/${TTY_FILE}"
            else
                    echo "Nicht in der Gruppe vcon. Breche ab..."
            fi
    }
    Und das Skript habe ich in /usr/local/bin/grabvcon.sh getan:

    Code:
    #!/bin/bash
    
    is_numeric() {
    
            case "$1" in
                    [0-9] )
                            echo 0
                            ;;
                    * )
                            echo 1
                            ;;
            esac
    }
    
    getTty() {
            TTYFILE=`tty | cut -d "/" -f 4`
            if [ -n "$TTYFILE" ]; then
                    TTYFILE=$TTYFILE
                    TTYBASE=`tty | cut -d "/" -f 3`
                            TTY_FILE="${TTYBASE}_${TTYFILE}"
            else
                    TTY_FILE=`tty | cut -d "/" -f 3`
            fi
            echo $TTY_FILE
    }
    
    groups $USER | grep vcon 1>/dev/null
    if [ "$?" -eq 0 ]; then
    	if [ -d "/tmp/vcon" ]; then
    		COUNT=0
    		FILES=""
    		for i in /tmp/vcon/*;
    			do
    				if [ "$i" != "/tmp/vcon/`getTty`" ]; then
    					COUNT=$[$COUNT+1]
    					FILES="$FILES $i"
    				fi
    			done
    		FILES=($FILES)
    		if [ $COUNT -gt 0 ]; then
    			COUNT=0
    			clear
    			printf "Bitte auswählen:\n-------\n"
    			for j in ${FILES[@]};
    				do
    					echo "${COUNT}) : $j"
    					COUNT=$[$COUNT+1]
    				done
    				MAXCOUNT=$[$COUNT-1]
    				printf "Auswahl: "
    				read CHOICE
    				while [ "`is_numeric $CHOICE`" -eq 1 ] || [ "$CHOICE" -gt $MAXCOUNT ] || [ "$CHOICE" -lt 0 ];
    					do
    						clear
    						printf "Falsche Eingabe.\nBitte auswählen:\n--------\n"
    						COUNT=0
    			                        for j in ${FILES[@]};
                            			        do
                          	  	       				echo "${COUNT}) : $j"
                           	              				COUNT=$[$COUNT+1]
    		         				done
    						printf "Auswahl: "
    						read CHOICE
    					done
    			tail -n 1000 -f ${FILES[$CHOICE]}
    		else
    			echo "Keine Konsolen angelegt."
    			exit 0
    		fi
    	else
    		echo "Derzeit keine Konsolen verfuegbar."
    		exit 0
    	fi
    else
    	echo "Keine Berechtigung."
    	exit 1
    fi
    exit 0
    Die jeweiligen Benutzer der Gruppe vcon starten ihr Log mit logUser und per grabvcon.sh kann dann die Datei angezeigt werden.

  4. #4
    Registrierter Benutzer Avatar von JL Hooker
    Registriert seit
    Jan 2006
    Beiträge
    70
    Ein anderer Ansatz wäre über screen und screen -x.

    Gruß
    Freund exotischer Hardware und Architekturen

  5. #5
    Registrierter Benutzer
    Registriert seit
    Sep 2007
    Beiträge
    31
    Ah, das klappt ja viel besser und einfacher mit screen. Vielen Dank.

Ähnliche Themen

  1. Ausgabe eines programms/scripts in $foo anzeigen
    Von n00b2k!ll im Forum Linux Allgemein
    Antworten: 2
    Letzter Beitrag: 10.04.05, 19:40
  2. tail auf fremder Konsole macht keinen Zeilenumbruch
    Von jazzesnee im Forum System installieren und konfigurieren
    Antworten: 3
    Letzter Beitrag: 16.03.05, 23:21
  3. Antworten: 8
    Letzter Beitrag: 12.03.05, 15:57
  4. Konsole vom Aussterben bedroht?
    Von TheGrudge im Forum Linux Allgemein
    Antworten: 140
    Letzter Beitrag: 08.03.05, 00:33
  5. Ausgabe eines laufenden Prozesses umleiten
    Von /dev/hda im Forum Linux Allgemein
    Antworten: 2
    Letzter Beitrag: 03.04.04, 18:24

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •