🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.os.bsd
12 messages
12 total messages Started by Marcin Thu, 14 May 2009 11:50
bzip2 i limit pamieci
#20902
Author: Marcin
Date: Thu, 14 May 2009 11:50
14 lines
1368 bytes
Witam,

usiluje skompresowac spory plik (>80MB) na serwerze wirtualnym w home.pl 
(FreeBSD ;) Komenda przykladowo wyglada tak:

bzip2 -z /sciezka/plik.sql

Niestety, jest ustawiony limit pamieci na 80MB co powoduje, ze 
kompresowany plik jest ucinany po osiagnieciu limitu. Czy jest szansa na 
obejscie tego w bzip2? Jezeli nie, co polecacie do pakowania duzych 
plikow tekstowych? Czy musze podzielic ten plik tekstowy na mniejsze i 
kompresowac oddzielnie?

dzieki za pomoc, pozdr, m.
Re: bzip2 i limit pamieci
#20903
Author: PetruS
Date: Thu, 14 May 2009 13:17
33 lines
1626 bytes
Marcin wrote:

> Witam,
> 
> usiluje skompresowac spory plik (>80MB) na serwerze wirtualnym w home.pl
> (FreeBSD ;) Komenda przykladowo wyglada tak:
> 
> bzip2 -z /sciezka/plik.sql
> 
> Niestety, jest ustawiony limit pamieci na 80MB co powoduje, ze
> kompresowany plik jest ucinany po osiagnieciu limitu. Czy jest szansa na
> obejscie tego w bzip2? Jezeli nie, co polecacie do pakowania duzych
> plikow tekstowych? Czy musze podzielic ten plik tekstowy na mniejsze i
> kompresowac oddzielnie?

Zwykły potoczek powinien Ci wystarczyć:

$ bzip2 < /sciezka/plik.sql | split -b 75m - plik.sql.bz2_

Utworzy się kilka plików z przyrostkiem aa, ab, ac itd. każdy o rozmiarze
nie większym niż 75 MB.

Rozpakowanie tegoż:

$ cat plik.sql.bz2_* | zcat > plik.sql

Możesz też dodatkowo sprawdzić sumy:

$ md5 /sciezka/plik.sql
$ cat plik.sql.bz2_* | zcat | md5
-- 
Piotr Sietnik
s i e t p [@] p o c z t a [na] . o n e t . p l
Re: bzip2 i limit pamieci
#20904
Author: Marcin
Date: Thu, 14 May 2009 14:17
14 lines
1553 bytes
PetruS pisze:
> Zwykły potoczek powinien Ci wystarczyć:
> 
> $ bzip2 < /sciezka/plik.sql | split -b 75m - plik.sql.bz2_
> 
> Utworzy się kilka plików z przyrostkiem aa, ab, ac itd. każdy o rozmiarze
> nie większym niż 75 MB.

To nie dziala, bo split powinien byc przed kompresja - a w tym potoku 
dzielony jest chyba juz wynik kompresji... Wlasnie sie glowie jak te 
kolejnosc zamienic ;) Tzn. w jednej zgrabnej komendzie najpierw split 
pliku, a potem wynik splita do bzipa...

pomoc mile widziana :) pozdr, m.
Re: bzip2 i limit pamieci
#20905
Author: PetruS
Date: Thu, 14 May 2009 14:44
27 lines
1605 bytes
Marcin wrote:

> PetruS pisze:
>> Zwykły potoczek powinien Ci wystarczyć:
>> 
>> $ bzip2 < /sciezka/plik.sql | split -b 75m - plik.sql.bz2_
>> 
>> Utworzy się kilka plików z przyrostkiem aa, ab, ac itd. każdy o rozmiarze
>> nie większym niż 75 MB.
> 
> To nie dziala, bo split powinien byc przed kompresja - a w tym potoku
> dzielony jest chyba juz wynik kompresji...

Próbowałeś, czy tak z głowy stwierdzasz?
Jest dzielony wynik kompresji, ale w czym to przeszkadza?
Dane są kompresowane, a split je dzieli w locie na mniejsze kawałki
i każdy z nich zapisuje do nowego pliku.

> Wlasnie sie glowie jak te 
> kolejnosc zamienic ;) Tzn. w jednej zgrabnej komendzie najpierw split
> pliku, a potem wynik splita do bzipa...

Zrób jak napisałem. To naprawdę działa.

-- 
Piotr Sietnik
s i e t p [@] p o c z t a [na] . o n e t . p l
Re: bzip2 i limit pamieci
#20910
Author: Marcin
Date: Thu, 14 May 2009 14:45
29 lines
1996 bytes
Marcin pisze:
> PetruS pisze:
>> Zwykły potoczek powinien Ci wystarczyć:
>>
>> $ bzip2 < /sciezka/plik.sql | split -b 75m - plik.sql.bz2_
>>
>> Utworzy się kilka plików z przyrostkiem aa, ab, ac itd. każdy o rozmiarze
>> nie większym niż 75 MB.
> 
> To nie dziala, bo split powinien byc przed kompresja - a w tym potoku 
> dzielony jest chyba juz wynik kompresji... Wlasnie sie glowie jak te 
> kolejnosc zamienic ;) Tzn. w jednej zgrabnej komendzie najpierw split 
> pliku, a potem wynik splita do bzipa...
> 
> pomoc mile widziana :) pozdr, m.

tak sobie wykombinowalem:

split -b 60m bkcp_1242295160.sql bkcp_1242295160.sql_
find . -name "bkcp_1242295160.sql_??" -exec bzip2 {} \;

a pozniej:

find . -name "bkcp_1242295160.sql_??.bz2" -exec bunzip2 {} \;
cat bkcp_1242295160.sql_* > plik.sql

mozna jakos ladniej/krocej?

pozdr, m.
Re: bzip2 i limit pamieci
#20906
Author: Marcin
Date: Thu, 14 May 2009 14:47
25 lines
1946 bytes
PetruS pisze:

> Próbowałeś, czy tak z głowy stwierdzasz?
> Jest dzielony wynik kompresji, ale w czym to przeszkadza?
> Dane są kompresowane, a split je dzieli w locie na mniejsze kawałki
> i każdy z nich zapisuje do nowego pliku.

probowalem, to dziala... tylko ze ten wynik kompresji jest uciety po 
80MB, wiec jest dzielony, ale i tak bezuzyteczny po sklejeniu

> 
>> Wlasnie sie glowie jak te 
>> kolejnosc zamienic ;) Tzn. w jednej zgrabnej komendzie najpierw split
>> pliku, a potem wynik splita do bzipa...
> 
> Zrób jak napisałem. To naprawdę działa.
> 

no wlasnie nie do konca, bo jednak sie nie kompresuje poprawnie. 
zamienilem kolejnosc i jest ok, tylko to troche upierdliwe przesylac 
potem kilka plikow i znowu sklejac

moze jest jakis program, ktory kompresuje przy okreslonym limicie pamieci?

pozdr, m.
Re: bzip2 i limit pamieci
#20911
Author: PetruS
Date: Thu, 14 May 2009 14:51
24 lines
1396 bytes
Marcin wrote:

> tak sobie wykombinowalem:
> 
> split -b 60m bkcp_1242295160.sql bkcp_1242295160.sql_
> find . -name "bkcp_1242295160.sql_??" -exec bzip2 {} \;
> 
> a pozniej:
> 
> find . -name "bkcp_1242295160.sql_??.bz2" -exec bunzip2 {} \;
> cat bkcp_1242295160.sql_* > plik.sql
> 
> mozna jakos ladniej/krocej?

Ale po co?
Zrób jak wcześniej napisałem.
Mniej plików, mniej wykorzystywanych zasobów, mniej komend,
mniej problemów..., a i szybkość działania większa.

Po co sobie życie komplikujesz?

-- 
Piotr Sietnik
s i e t p [@] p o c z t a [na] . o n e t . p l
Re: bzip2 i limit pamieci
#20912
Author: Marcin
Date: Thu, 14 May 2009 14:56
19 lines
1806 bytes
PetruS pisze:
> Ale po co?
> Zrób jak wcześniej napisałem.
> Mniej plików, mniej wykorzystywanych zasobów, mniej komend,
> mniej problemów..., a i szybkość działania większa.

tylko ze Twoj sposob NIE dziala, bo nie rozwiazuje mojego PROBLEMU, 
ktory polega na tym, ze przesylajac >80MB danych do bzip2 otrzymuje w 
wyniku BEZUZYTECZNY plik, ktorego nie da sie rozpakowac

w zwiazku z tym podzielenie BEZUZYTECZNEGO pliku otrzymanego z bzip2 a 
potem go SKLEJENIE nic nie pomaga

> Po co sobie życie komplikujesz?

to raczej admini mi zycie skomplikowali, bo dopoki pliki byly mniejsze 
niz 80MB wszystko bylo ok...

dzieki za pomoc, pozdr, m.
Re: bzip2 i limit pamieci
#20907
Author: PetruS
Date: Thu, 14 May 2009 16:40
35 lines
2084 bytes
Marcin wrote:

> PetruS pisze:
> 
>> Próbowałeś, czy tak z głowy stwierdzasz?
>> Jest dzielony wynik kompresji, ale w czym to przeszkadza?
>> Dane są kompresowane, a split je dzieli w locie na mniejsze kawałki
>> i każdy z nich zapisuje do nowego pliku.
> 
> probowalem, to dziala... tylko ze ten wynik kompresji jest uciety po
> 80MB, wiec jest dzielony, ale i tak bezuzyteczny po sklejeniu

Sklejasz go po przesłaniu do siebie?
Może się skleja w niewłaściwej kolejności?

Czy zastępując zcat (powinien automatycznie rozpoznać bzip2) bzcat-em
jest to samo?

Próbowałeś zamiast przekierowania "<" użyć dd lub cat-a?

$ cat plik | bzip2 -c | split -b 75m - plik.sql.bz2_

> no wlasnie nie do konca, bo jednak sie nie kompresuje poprawnie.
> zamienilem kolejnosc i jest ok, tylko to troche upierdliwe przesylac
> potem kilka plikow i znowu sklejac

Jak chcesz przesyłać i używasz ssh do zdalnej maszyny, to spróbuj przesłać
plik w całości z kompresją przed przesłaniem i dekompresją po w locie:

$ ssh user@serwer "dd if=plik.sql bs=32k | bzip2 -c" | bzip2 -d > plik.sql

PS Może coś pomyliłem, bo mnie łeb napiernicza od rana dzisiaj.
-- 
Piotr Sietnik
s i e t p [@] p o c z t a [na] . o n e t . p l
Re: bzip2 i limit pamieci
#20908
Author: Daniel Horecki
Date: Thu, 14 May 2009 17:02
33 lines
1877 bytes
PetruS <sietp@poczta.onet.pl> writes:

> Marcin wrote:
>
>> PetruS pisze:
>>> Zwykły potoczek powinien Ci wystarczyć:
>>> 
>>> $ bzip2 < /sciezka/plik.sql | split -b 75m - plik.sql.bz2_
>>> 
>>> Utworzy się kilka plików z przyrostkiem aa, ab, ac itd. każdy o rozmiarze
>>> nie większym niż 75 MB.
>> 
>> To nie dziala, bo split powinien byc przed kompresja - a w tym potoku
>> dzielony jest chyba juz wynik kompresji...
>
> Próbowałeś, czy tak z głowy stwierdzasz?
> Jest dzielony wynik kompresji, ale w czym to przeszkadza?
> Dane są kompresowane, a split je dzieli w locie na mniejsze kawałki
> i każdy z nich zapisuje do nowego pliku.
>

Tam jest limit pamięci, nie wielkości pliku. Jak bzip2 dojdzie do tych 
80MB, to zatrzymuje się. I tak będziesz miał dwa pliki - jeden 75MB 
i jeden 5MB.

Niewiele to pomoże. 

Daniel

-- 
Daniel Horecki
http://morr.pl http://linux.pl http://netbsd.pl
HAIL ERIS!
Re: bzip2 i limit pamieci
#20909
Author: PetruS
Date: Thu, 14 May 2009 17:39
12 lines
1186 bytes
Daniel Horecki wrote:

> Tam jest limit pamięci, nie wielkości pliku. Jak bzip2 dojdzie do tych
> 80MB, to zatrzymuje się. I tak będziesz miał dwa pliki - jeden 75MB
> i jeden 5MB.

Ja myślałem, że to limit na wielkość pliku.
Może lepiej pójdę już spać? Tak mnie łeb od rana napiernicza...

-- 
Piotr Sietnik
s i e t p [@] p o c z t a [na] . o n e t . p l
Re: bzip2 i limit pamieci
#20913
Author: Marcin Gryszkalis
Date: Fri, 15 May 2009 21:22
13 lines
1020 bytes
Marcin wrote:
> Niestety, jest ustawiony limit pamieci na 80MB co powoduje, ze

A może zgodnie z manualem:

-s --small
              Reduce  memory  usage

pozdrawiam
-- 
Marcin Gryszkalis, PGP 0x9F183FA3
jabber jid:mg@fork.pl, gg:2532994
http://the.fork.pl
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads