Anzeige:
Ergebnis 1 bis 5 von 5

Thema: tar - stdout und stderr getrennt

  1. #1
    Registrierter Benutzer
    Registriert seit
    Jan 2002
    Beiträge
    127

    tar - stdout und stderr getrennt

    Hallo,

    wenn ich bei tar als Ausgabedatei die Standardausgabe (tar -f - ) angeben, dann habe ich Standardausgabe und Standardfehlerausgabe in einem Strom. Ich brauche die beiden aber getrennt. Wie geht das?

    Danke
    Gruß Chris

  2. #2
    BAfH Avatar von moedule
    Registriert seit
    Aug 2003
    Ort
    Hamburg
    Beiträge
    907
    wenn du die beiden trennen willst, kannst dudas ungefaehr so machen:
    Code:
    programm 2> error.txt | tee stdout.txt
    (ich hoffe das das auch fuers tar tut)
    moe

  3. #3
    Registrierter Benutzer
    Registriert seit
    Jan 2002
    Beiträge
    127
    Hi moedule,

    glaube nicht, dass deins in meinem Fall funktioniert. Normalerweise kann ich die beiden Ausgaben direkt in eine Datei schreiben z.b. so:
    Code:
    tar -cvf test.tar /etc 1>/tmp/stdout.txt 2>/tmp/stderr.txt
    Nun will ich aber das tar-Archiv nicht lokal speichern, sondern direkt per ssh auf einen anderen Rechner schreiben. Dabei will ich nicht den Umweg machen es erst lokal zu speichern und dann per scp zu kopieren, das ist zu umständlich. Derzeit mach ich das so:
    Code:
    (tar -cvf - /etc | buffer | ssh user@remote-rechner buffer -o test.tar) 1>/tmp/stdout.txt 2>/tmp/stderr.txt
    Das Archiv wird also praktisch direkt auf die Remote-Platte geschrieben, nur das Problem ist, dass stdout.txt immer leer ist, und stderr.txt sowohl die Kanäle 1 und 2 enthält. Das kommt daher, dass tar das Archiv eben nicht auf die Platte sondern nach stdout schreibt. Da ist also kein Platz für die Standardausgabe und somit wird diese direkt von tar auf stderr umgelenkt.

    Hoffe das war jetzt verständlicher

    Gruß

  4. #4
    Agent (Clone #17264) Avatar von Jasper
    Registriert seit
    Jul 2002
    Ort
    The Matrix (Reloaded)
    Beiträge
    3.073
    das geht nicht. in deinem fall schreibt tar die daten nach stdout, also müssen alle meldungen nach stderr. was geht ist folgendes:

    mkfifo named_pipe
    buffer < named_pipe | ssh user@remote-rechner buffer -o test.tar &
    tar -cvf named_pipe /etc/ 2>err 1>std

    damit schreibt tar in eine pipe und nicht mehr nach stdout.


    -j
    "Oh my God!" "Smith will suffice" (Agent Smith, Matrix)
    "The first rule of holes is: when you find yourself in one, stop digging." (PJ, Groklaw)

  5. #5
    Registrierter Benutzer
    Registriert seit
    Jan 2002
    Beiträge
    127
    Danke Jasper,
    mkfifo kannte ich noch nicht

Ähnliche Themen

  1. Volumenaufteilung bei tar-Archiven
    Von Perdox im Forum System installieren und konfigurieren
    Antworten: 10
    Letzter Beitrag: 06.07.04, 12:38
  2. Antworten: 7
    Letzter Beitrag: 18.06.04, 13:11
  3. Antworten: 0
    Letzter Beitrag: 17.07.03, 13:30
  4. stdout und stderr umleiten
    Von moeper im Forum Linux Allgemein
    Antworten: 2
    Letzter Beitrag: 11.01.03, 13:02
  5. BAckup mit tar
    Von Andreas.S im Forum System installieren und konfigurieren
    Antworten: 4
    Letzter Beitrag: 12.04.02, 15:07

Lesezeichen

Berechtigungen

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