Archiv verlassen und diese Seite im Standarddesign anzeigen : tar - stdout und stderr getrennt
SniperRifle
30.07.04, 15:13
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
wenn du die beiden trennen willst, kannst dudas ungefaehr so machen:
programm 2> error.txt | tee stdout.txt
(ich hoffe das das auch fuers tar tut)
moe
SniperRifle
30.07.04, 17:33
Hi moedule,
glaube nicht, dass deins in meinem Fall funktioniert. Normalerweise kann ich die beiden Ausgaben direkt in eine Datei schreiben z.b. so:
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:
(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ß
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
SniperRifle
01.08.04, 21:26
Danke Jasper,
mkfifo kannte ich noch nicht ;)
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.