Ausgabe umleiten mit tee

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von aloisius, 24.04.2006.

  1. #1 aloisius, 24.04.2006
    aloisius

    aloisius Jungspund

    Dabei seit:
    24.04.2006
    Beiträge:
    16
    Zustimmungen:
    0
    Hallo,
    ich möchte eine Programmausgabe auf dem SDTOUT und in eine log Datei haben.
    Mit

    tuwas | tee -a logdatei
    klappt das im Prinzip.

    Aber:

    Die Ausgabe auf den STDOUT wird durch die pipe nach tee offenbar gepuffert.
    d.h. man erält während des Programmablaufes keine Augaben sondern alles auf einen Rutsch nach Programmende.

    Mann mir da jemand weiterhelfen ?
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Sicher, dass das Programm nicht auch puffert?
    Ansonsten versuch's mal mit
    Code:
    tuwas >> logdatei & tail -f logdatei
    
     
  4. #3 Schlaubi_fi.de, 24.04.2006
    Schlaubi_fi.de

    Schlaubi_fi.de Mac OS X User

    Dabei seit:
    22.12.2004
    Beiträge:
    304
    Zustimmungen:
    0
    Eben...es kommt ganz darauf an was das Programm macht...ob es die Ausgabe "on Block" nach stdout schreibt oder halt Zeile für Zeile...
    Um was für ein Programm handelt es sich denn..bzw. wenn es ein Shellskript ist einfach mal posten :D
     
  5. #4 aloisius, 25.04.2006
    aloisius

    aloisius Jungspund

    Dabei seit:
    24.04.2006
    Beiträge:
    16
    Zustimmungen:
    0
    nähere erklärung

    Hallo,

    das Program puffert nicht.

    wenn ich
    tuwas
    aufrufe werden nach und nach ausgaben auf den Bildschirm geschrieben.
    Es ist ein C Programm, ich aber keinen quellcode dazu.
     
  6. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Klappt es denn mit der tail-Version?
     
  7. #6 ninguno, 25.04.2006
    ninguno

    ninguno Tripel-As

    Dabei seit:
    13.05.2005
    Beiträge:
    162
    Zustimmungen:
    0
    das mit tail würd glaub ich nur dann funktionieren, wenn das c programm selbst in den file schreiben würde und die pufferung vorher abschaltet. so aber schreibt das c programm in die console und die shell lenkt die daten in die datei um. der shell kann man meines wissens nicht beibringen das block buffering bei ausgabe in datei oder pipe zu unterlassen.
     
  8. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Ich weiss es nicht, doch vermute ich, dass das System anders puffert, wenn die Ausgabe in eine Datei umgeleitet wird (es ist ja i.d.R. nicht das Programm, das puffert, sondern das System), und da koennte tail ja was bringen. Wenn nicht, koennte man ja ein sync alle sekunde aufrufen:
    Code:
    #!/bin/bash
    while(true)
    do
       sync;
       sleep 1;
    done
    
    Das sieht jedoch ein wenig nach overkill aus...
     
  9. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  10. #8 Wolfgang, 25.04.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo

    Das ist allerdings mehr als overkill. ;)

    Also folgendes funktioniert mit tee völlig wie erwartet.
    Hier wird nämlich Zeilenweise ausgegeben.
    Das ist aber im Falle @aloisius Aufgabe seines Programmes, dafür zu sorgen.

    Code:
    for i in $(seq 100); do echo $(date +"%H_%M_%S")|tee +a "teedatei";sleep 1; done
    
    geht genauso wie
    Code:
    for i in $(seq 100); do echo $(date +"%H_%M_%S");sleep 1; done|tee +a "teedatei"
    
    Es ist allerdings schon Sache des Programmes, ob gepuffert ausgegeben wird oder nicht.
    Sonst würde nämlich das Entpuffern für Perl auch nicht gehen.
    Code:
    local $| = 1;
    Gruß Wolfgang
     
  11. #9 Schlaubi_fi.de, 26.04.2006
    Schlaubi_fi.de

    Schlaubi_fi.de Mac OS X User

    Dabei seit:
    22.12.2004
    Beiträge:
    304
    Zustimmungen:
    0
    Ja...also ich habe auch rein vom Gefühl her auch eher den Verdacht, dass das verwendete C-Programm da rein spuckt...
     
Thema:

Ausgabe umleiten mit tee

Die Seite wird geladen...

Ausgabe umleiten mit tee - Ähnliche Themen

  1. Ausgabe in Datei umleiten und gleichzeigig eine max. Größe der Datei definieren?

    Ausgabe in Datei umleiten und gleichzeigig eine max. Größe der Datei definieren?: Hallo Zusammen, ich möchte eine Applikation starten und deren Ausgaben in eine Datei umleiten. Kenn ich und geht ja auch ganz einfach: # app...
  2. watch Ausgabe umleiten

    watch Ausgabe umleiten: Hallo Gibt es eine Möglichkeit die Ausgabe von "watch" in eine Datei umzuleiten? Ich möchte die Anzahl verbundenen http Verbindungen auf...
  3. Programmausgabe in anderes Programm umleiten

    Programmausgabe in anderes Programm umleiten: Hi @all, so ich bin nun so gut wie fertig mit meiner Facharbeit. Nur meine Beispielprogramme möchte ich noch "verschönern". Da mein Thema...
  4. Alle Ausgaben eines Shellscripts umleiten ohne Pipe

    Alle Ausgaben eines Shellscripts umleiten ohne Pipe: Hallo, Also, die Ausgabe meines Shellscripts soll komplett mit STDERR und STDOUT in eine Datei geschrieben werden. Das Script wird aber von...
  5. SSH-Ausgabe in Datei umleiten

    SSH-Ausgabe in Datei umleiten: Hallo, ich habe ein Scripte geschrieben, dass die folgende Zeile enthält: ssh user@19.168.47.11 /usr/sbin/esxcfg-info > /usr/local/OUTPUT...