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
- 3514 megtekintés
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!
- A hozzászóláshoz be kell jelentkezni
Úgy tűnik, a tar --index-file opciója lesz a barátom...
- A hozzászóláshoz be kell jelentkezni
Igen, ez bevált. Nézem közben a tömörítő megadásának lehetőségét is pigz-zel...
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
Igen, ez is bevált.
tar -I pigz ..........
Köszönöm!
- A hozzászóláshoz be kell jelentkezni
( 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)
- A hozzászóláshoz be kell jelentkezni
Naszóval akkor lentebb a "-f -" résznél ahelyett pont ezt próbáltam ki, és - némi fenntartással - megfelel a célnak.
Köszönöm!
- A hozzászóláshoz be kell jelentkezni
nem trükk
tar -cvf - forras 2>logfile | pigz >cel.tgz
- A hozzászóláshoz be kell jelentkezni
Félreértettem, hogy mit szeretne? Azt hittem, menet közben akarja látni a logot.
- A hozzászóláshoz be kell jelentkezni
Próbáltam az eredeti verziót is említemi, ami a tömörítőt leszámítva jó nekem.
Ez a
tar -cvzf cél forrás >>logfile
Nos, ezt egy másik tömörítővel megvalósítani szeretném.
- A hozzászóláshoz be kell jelentkezni
akkor is ugyanez lenne, csak nem kellene a 2>log.
stdout kimenet, stderr log, a konzolon meg mindkettő látszik, bár a pipe miatt az egyik mégse ;)
- A hozzászóláshoz be kell jelentkezni
Úgy emlékeztem, a log is a stdoutra megy. Rég volt. :(
(vagy keverem a pax nevűvel)
- A hozzászóláshoz be kell jelentkezni
Ez maximum az f opció nélkül lehet jó, mindjárt próbálom...
- A hozzászóláshoz be kell jelentkezni
Létezik olyan, hogy 2>>logfile ?
Mert mindig felülírogatja a naplót... :(
Mosdjuk át tudom hidalni egy közbenső sub-loggal, de hátha... :)
- A hozzászóláshoz be kell jelentkezni
igen, de miért nem próbálod ki?
- A hozzászóláshoz be kell jelentkezni
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 hozzászóláshoz be kell jelentkezni
-f
-
nagyon nem mindegy
- A hozzászóláshoz be kell jelentkezni
Tök jó, hogy ilyenre nem lehet rákeresni a guglival sem :(
Szóval a tar man-jában sem említik ezt a fordulatot. Mit rejt a titok? (= Hogy kell a "-f -" -t értelmezni?)
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
keress ezekre: unix+hyphen+dash+redirect
esetleg azért nincs a man tarban (pl hpux man 1 tar-ban benne van), mert általános tulajdonsága sok unix programnak, hogy stdin, stdout helyettesítésre használja
- A hozzászóláshoz be kell jelentkezni