Strona 1 z 1

Bash - pakowanie plików w locie

: 02 stycznia 2013, 15:49
autor: sethiel
Chciałbym w jednej linijce jednocześnie (a może być też na koniec) spakować przetwarzane pliki:

obecnie robię to tak:

Kod: Zaznacz cały

pg_dumpall -h $IP -p $PORT -U $USER > $LOKALIZACJA
tar -cjf $LOKALIZACJA.bz2 $LOKALIZACJA
rm $LOKALIZACJA
Na 100% można to zrobić w jednej linii i zapewne także skrócić mocno cały zapis.

: 02 stycznia 2013, 18:24
autor: markossx
Dla mysqldump działa tak:

Kod: Zaznacz cały

mysqldump -u xxx -h localhost dbname > /tmp/abc && ls /tmp/abc | xargs tar -jcvf /tmp/abc.tbz2
chociaż do końca w locie to to nie jest :)

: 02 stycznia 2013, 21:47
autor: lessmian2
Coś w stylu poniższego nie działa?

Kod: Zaznacz cały

pg_dumpall -h $IP -p $PORT -U $USER  | bzip2 > $LOKALIZACJA

: 03 stycznia 2013, 16:16
autor: markossx
Działa.

: 07 stycznia 2013, 10:58
autor: sethiel
Działa dziękuję.
Ale długo 25GB bazę danych pakuje do 1,7GB ale idzie to pół godziny lekko, jak nie więcej.

: 07 stycznia 2013, 19:37
autor: lessmian2
Zawsze możesz użyć gzipa jeśli nie zależy Ci tak bardzo na wielkości pliku wynikowego - powinno być szybciej.

: 08 stycznia 2013, 14:14
autor: sethiel
Zależy zależy - po Internecie i VPN to leci więc im mniej tym lepiej.

: 08 stycznia 2013, 15:13
autor: otypoks
Szybciej da się pbzip2 lub lbzip2, mniejsze pliki wynikowe powinno dać lzma z wykorzystaniem np. pxz.