Dovecot ปิดใช้งานการบีบอัด zlib และขยายข้อความที่มีอยู่


0

หลังจากอัปเกรด dovecot เป็น 2.1.7 (wheezy) ดูเหมือนว่าไฟล์ดัชนีเมลบ็อกซ์จะใช้งานไม่ได้ Normaly dovecot ควรซ่อมแซมโดยอัตโนมัติ แต่เนื่องจากการบีบอัด zlib จะไม่สามารถกำหนดขนาดข้อความที่ถูกต้องได้

Error: Corrupted index cache file ...
Input/output error (FETCH for mailbox INBOX UID ...
Maildir filename has wrong S value ...

ตอนนี้ฉันต้องการปิดการใช้งานปลั๊กอิน zlib อย่างสมบูรณ์และคลายการบีบอัดข้อความที่มีอยู่ ทดลองใช้ dsync เมื่อไม่สำเร็จเพราะ dsync ไม่ได้ทำการขยายขนาด

ข้อเสนอแนะวิธีการจัดการกับมัน?

คำตอบ:


2

เท่าที่ฉันกังวลขนาดของข้อความจะถูกกำหนดโดยแอตทริบิวต์ ", S = 12345" ในชื่อไฟล์ พวกเขาให้สคริปต์ Perl ซึ่งสามารถสแกนซ้ำ mail หนึ่งหรือหลายตัวพร้อมตัวเลือกเพื่อแยกไฟล์บีบอัด zlib กำหนดขนาดข้อความจริงและเขียนในชื่อไฟล์

ฉันหมายถึงข้อมูลที่พบที่นี่: http://www.dovecot.org/list/dovecot/2013- มกราคม/087953.html

สคริปต์นี้มีให้ที่ http://dovecot.org/tools/maildir-size-fix.pl

คุณอาจต้องเปลี่ยนตัวแปรการกำหนดค่าบางอย่างในสคริปต์หรือกำหนดพารามิเตอร์ที่มี - อย่างน้อยฉันเองก็ไม่พบเอกสารเกี่ยวกับการใช้สคริปต์ แต่การกำหนดค่าที่จุดเริ่มต้นของสคริปต์นั้นค่อนข้างเข้าใจได้ง่าย

สำหรับฉันมันใช้งานได้เหมือนมีเสน่ห์ไม่มีข้อบกพร่องมาก่อน


maildir-size-fix.pl แก้ไขปัญหาให้ฉัน ขอบคุณ
David Goodwin

1
#!/bin/bash 
IFS=$'\n'

for i in $(find /var/vmail -type f); do

    if file "$i" |grep gzip >/dev/null; then
#       echo "Extracting GZIP:" "$i" 
        mv "$i" "$i".gz
        gunzip "$i".gz

    elif file "$i" |grep bzip2 >/dev/null; then
#       echo "Extracting BZIP2:" "$i"
        bunzip2 -q "$i"
        mv "$i".out "$(echo $i |sed 's/.out//')"
     fi

done
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.