Sziasztok!
Dovecot LZ4 tomoritesi kepessegevel jatszom es szeretnem betomoriteni az atkonfiguralas elotti leveleket (a Dovecot csak a tomorites bekapcsolas utan erkezett leveleket tomoriti). A dokumentacioban szepen leirjak, hogy ennek mi a menete, a script meg is van, csakhogy az LZ4-gyel tomoritett leveleket a Dovecot sajat "header"-rel megjeloli (IOSTREAM_LZ4_MAGIC), hogy kitomoritesnel tudja milyen algoritmust kell hasznalnia. Ertelmeszeruen a kezi lz4 tomorites ezt a header-t kihagyja. :)
Halovany probalkozasom, amit alabb olvashattok, nem vezetett sikerre (a $tmpfile az lz4-gyel tomoritett maildir fajl):
echo -e -n "Dovecot-LZ4\x0d\x2a\x9b\xc5" | cat - "$tmpfile" > "$dstfile"
Az igy preparalt levelek olvasasakor a Dovecot az alabbi hibauzenetet logolta:
lz4 max chunk size too large (69356824 > 1048576)
Barmilyen tippet, tanacsot szivesen fogadok, hatha kuzdott mar valaki hasonloval.
- 1584 megtekintés
Hozzászólások
Ha mondjuk simán bzip-eled?
- A hozzászóláshoz be kell jelentkezni
Ha nem talalok LZ4-re megoldast, akkor masik tomoritot fogok valasztani, de meg nem adnam fel. :)
- A hozzászóláshoz be kell jelentkezni
Ezt debugnak hívják, nem feladásnak. Nekem Debian Wheezyn példul az addig jól működő file szintű tömörítés teljesen szétesett és írhattam kitörömítő scriptet. Mindenféle kombóban próbáltam és meghal a Dovecot a tömörített filetól a maildirben.
- A hozzászóláshoz be kell jelentkezni
Pontosan mivel tömörítettél? Nem csak a fejléc van, hanem a fájl tartalma kisebb blokkokra van bontva az idézett forráskód szerint. A script is arra panaszkodik, hogy rossz blokkmérettel találkozott.
- A hozzászóláshoz be kell jelentkezni
Nem bonyolitottam tul a dolgot:
lz4 [forras] [cel]
Elkepzelheto, hogy ez igy nem fog menni?
- A hozzászóláshoz be kell jelentkezni
Egészen biztosan nem, mert ők az LZ4 algoritmus fölé egy saját fájlformátumot tettek (az általad idézett forrás szerint legalábbis).
- A hozzászóláshoz be kell jelentkezni
Csodas! Koszonom az informaciot.
- A hozzászóláshoz be kell jelentkezni
Ugy tunik marad az, hogy a dsync-kel es a mailbox formatum konvertalassal operalok valamit.
- A hozzászóláshoz be kell jelentkezni
zfs to the rescue!
- A hozzászóláshoz be kell jelentkezni
No igen, van ahol hasznalom is, de jelen esetben ez tunik celravezetobbnek.
- A hozzászóláshoz be kell jelentkezni
Use the source Luke! Az általad linkelt forrásban, három sorral lentebb van a tényleges Dovecot fejléc definiciója: nem csak az általad próbált szöveg, de azt követően négy byte is alkotja azt. Logolt üzenet meg akkor jön, amikor ezen négy byte-ból számított érték nagyobb mint a megengedett érték.
Ergo ne csak azt a szöveget tedd a tömörített állomány elé, de olyan négy byte-ot is, hogy azokkal ne lépd túl az adott nagyságot.
Nincs Dovecot-om, de ezzel már mennie kell annak amit akarsz.
- A hozzászóláshoz be kell jelentkezni
Use your head luke! Mint fentebb írtam, darabokra van bontva a tartalom, az 1 MiB max méret nem valami sok, a gyakorlatban darabolni kell elég sok levelet.
- A hozzászóláshoz be kell jelentkezni
Vegul a nyito mondat hasznalt, meg egy alaposabb RTFM. :) A doveadm sync segitsegevel es maildir-rol maildir-re konvertalassal trivialis volt megoldani, adatvesztes es leallas nelkul.
- A hozzászóláshoz be kell jelentkezni
Wiki ad némi támpontot Zlib esetére (Compression bekezdés): http://wiki2.dovecot.org/Plugins/Zlib
- A hozzászóláshoz be kell jelentkezni
Koszi, ez alapjan keszult a tomorito script, de a gond azzal volt, ahogy a Dovecot megprobalja megallapitani, hogy egy maildir fajl LZ4-gyel van betomoritve.
- A hozzászóláshoz be kell jelentkezni