[MEGOLDVA] tar kétféle output

Fórumok

Szeretném a

tar -cvzf cél forrás >>logfile

helyett a

tar -c forrás | pigz >cél

formát használni úgy, hogy ne veszítsem el a verbose kimenetet sem.
Próbálkoztam a

`tar -c forrás | pigz >cél` 2>&1 >>logfile

és a

`tar -c forrás | pigz >cél 2>&1` >>logfile

formát használni, de nem hozott eredményt.
Van ennek a problémának a megoldására esetleg valakinek valami trükkje?

MEGOLDVA:
1) logfile felülírással tar -cv forrás 2>logfile | pigz > cél
2) hozzáfűzősen tar -cv forrás 2>>logfile | pigz > cél
3) tar -I pigz -cvf cél forrás >>logfile
4) logfile felülírással tar --index-file logfile -cv forrás | pigz > cél

Hozzászólások

Sok ötletem nincs, de amit próbáltál... azt hogy képzelted?
A tar stdout-jára küldöd a tar fájlt és a logot is (ha a log kimegy ilyenkor), az meg sehogy sem jó.
De a gnu tarnak van valami --use-compress-program kapcsolója. Nézd meg azt!

Az elképzelés az volt, hogy ha stdout-ra küldte a tarballt, amit pipe-oltam a pigz-be, és meg volt adva a -v is a tarnak, akkor a képernyőre tolta azt a kimenetet, amire nekem a logfile-ban lenne szükségem... Ebből indultam ki akkor, amikor helytelenül kétféle outputról beszéltem.


( tar cv forras | gzip -f >cel.tgz ) 2>logfile

vagy


tar cv forras 2>logfile | gzip -f >cel.tgz

(nyilvan `gzip -f` helyett `pigz`, ezutobbit nem ismerem, de felt. ugyanazt csinalja)

nem trükk

tar -cvf - forras 2>logfile | pigz >cel.tgz

Natehát: működik a 2>>logfile is.
Ennek a megoldásnak a hátránya, hogy mindenképpen van a képernyőn is üzenet (amit normálisan a 2>&1 >/dev/null módon ki lehet iktatni), ami azért hátrányos, mert cronból... Oh, várj, cronban a script kimetetét még kukázhatom.
Ok, akkor ez is megfelelő megoldás.

Köszönöm.

A parancssorban a bemeneti/kimeneti fájlnév helyén előforduló '-' karakter számos parancs esetén a stdint/stdoutot jelenti. A man tar - bár tényleg adhatna egy példát - arra alapoz, hogy a jellemző konvenciókat ismeri a felhasználó. Az ördög ügyvédjeként aszondanám, hogy ha ezt taglalnia kellene, akkor akár az összes átirányító operátort is, és a végén lenne egy nonhuman tar.