นี่คือคำสั่ง doveadm-sync ที่สามารถเรียกใช้ในผู้ให้บริการโฮสติ้งฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
doveadm-sync - ยูทิลิตี้การซิงโครไนซ์กล่องจดหมายสองทางของ Dovecot
doveadm-backup - ยูทิลิตี้การซิงโครไนซ์กล่องจดหมายทางเดียวของ Dovecot
เรื่องย่อ
นกพิราบ [-ด.ช] ซิงค์ [-u ผู้ใช้งาน|-A|-F ไฟล์] [-S socket_path] [-1fPRU] [-l วินาที] [-r
rawlog_path] [-m ตู้จดหมาย] [-g กล่องจดหมาย_guid] [-n namespace|-N] [-x ไม่รวม] [-s รัฐ] [-T
วินาที] -d|ปลายทาง
นกพิราบ [-ด.ช] การสำรองข้อมูล [-u ผู้ใช้งาน|-A|-F ไฟล์] [-S socket_path] [-fPRU] [-l วินาที] [-r
rawlog_path] [-m ตู้จดหมาย] [-g กล่องจดหมาย_guid] [-n namespace|-N] [-x ไม่รวม] [-s รัฐ] [-T
วินาที] -d|ปลายทาง
DESCRIPTION
dsync คือยูทิลิตี้การซิงโครไนซ์เมลบ็อกซ์ของ Dovecot ใช้ได้หลายแบบ
กรณีการใช้งาน: การซิงโครไนซ์กล่องจดหมายแบบสองทาง การสร้างข้อมูลสำรองของเมล และการแปลง
กล่องจดหมายจาก/ไปยังรูปแบบกล่องจดหมายต่างๆ ทั้งหมดนี้ใช้ได้ในเครื่องเดียวกัน
เซิร์ฟเวอร์หรือระหว่างเซิร์ฟเวอร์ต่างๆ (ผ่าน SSH(1) หรือการเชื่อมต่อ TCP) กล่องจดหมายระยะไกลสามารถ
สามารถเข้าถึงได้ผ่านโปรโตคอล IMAP ซึ่งอนุญาตให้ใช้ dsync สำหรับการย้ายเมลบ็อกซ์
วัตถุประสงค์
คุณสามารถเรียกใช้ dsync ในโหมดใดโหมดหนึ่งจากสามโหมด:
· นกพิราบ การสำรองข้อมูล ทำการซิงโครไนซ์ทางเดียว หากมีการเปลี่ยนแปลงใดๆ
ในปลายทางจะถูกลบดังนั้นปลายทางจะมีลักษณะ
เหมือนกับแหล่งที่มา
· นกพิราบ ซิงค์ ทำการซิงโครไนซ์แบบสองทาง มันผสานการเปลี่ยนแปลงทั้งหมด
โดยไม่สูญเสียอะไรเลย กล่องจดหมายทั้งสองจะมีลักษณะเหมือนกัน
หลังจากการซิงโครไนซ์เสร็จสิ้น
· นกพิราบ ซิงค์ -1 ทำการซิงโครไนซ์ทางเดียว แต่รวมการเปลี่ยนแปลงเข้าด้วยกัน
ในปลายทางโดยไม่ต้องลบอะไร มันใช้งานไม่ได้ในขณะนี้
จึงควรจำกัดการใช้งาน จุดประสงค์หลักคือในช่วง
การย้ายกล่องจดหมายที่คุณเรียกใช้ได้ นกพิราบ การสำรองข้อมูล หลายครั้งแล้วจึงเปลี่ยน
อีเมลที่จะส่งไปยังกล่องจดหมายใหม่และเรียกใช้ นกพิราบ ซิงค์ -1 อีกที
เพื่อโอนเมลใหม่ล่าสุดจากเมลบ็อกซ์เก่า
นอกจากนี้ยังมีอัลกอริธึมการซิงโครไนซ์ที่แตกต่างกันสามแบบ:
· การซิงโครไนซ์แบบเต็ม (พารามิเตอร์ -f) จะสแกนข้อความทั้งหมดในทั้งหมด
กล่องจดหมาย สิ่งนี้รับประกันได้ว่าทุกอย่างจะถูกซิงโครไนซ์ แต่
มันช้าโดยไม่จำเป็นสำหรับการซิงโครไนซ์ที่เพิ่มขึ้น
· การซิงโครไนซ์อย่างรวดเร็ว (ค่าเริ่มต้น) พยายามครั้งแรกเพื่อค้นหากล่องจดหมายที่มี
เปลี่ยนและซิงโครไนซ์เฉพาะสิ่งเหล่านั้น ทำได้โดยการตรวจสอบ
ข้อมูลเมตาของกล่องจดหมาย (NEXTUID และ HIGHESTMODSEQ) มักจะใช้งานได้ดี
โดยเฉพาะอย่างยิ่งกับการซิงโครไนซ์ทางเดียว แต่ถ้าทั้งสองฝ่ายทำ exactly
จำนวนการเปลี่ยนแปลงเท่ากัน ข้อมูลเมตาอาจจบลงด้วยค่าเดียวกัน
แม้ว่าการเปลี่ยนแปลงจะแตกต่างกัน
· การซิงโครไนซ์สถานะ (พารามิเตอร์ -s) เป็นวิธีที่มีประสิทธิภาพมากที่สุดในการ
ประสานกล่องจดหมาย มันอาศัยการมีสถานะของการรัน dsync ก่อนหน้า
บันทึกไว้ที่ไหนสักแห่งและถูกส่งไปยัง dsync รันครั้งต่อไป ขึ้นอยู่กับสถานะนี้
dsync สามารถส่งได้เฉพาะการเปลี่ยนแปลงที่เกิดขึ้นหลังจากการรัน dsync ก่อนหน้าเท่านั้น
ตราบใดที่สถานะหรือกล่องจดหมายไม่เสียหาย อัลกอริธึมนี้ควร
ทำงานได้อย่างสมบูรณ์แบบ กระบวนการจำลองแบบใช้สิ่งนี้ภายในเพื่อดำเนินการมากที่สุด
ของการซิงโครไนซ์
การซิงค์ทำได้อย่างสมบูรณ์แบบที่สุด: IMAP หรือไคลเอ็นต์ POP3 ไม่ควรจะทำได้
เพื่อสังเกตความแตกต่างระหว่างกล่องจดหมายทั้งสอง การซิงค์แบบสองทางหมายความว่าปลอดภัย
เพื่อทำการปรับเปลี่ยนใด ๆ ทั้งสองข้าง และ dsync จะรวมการเปลี่ยนแปลงโดยไม่ต้อง
สูญเสียการเปลี่ยนแปลงใด ๆ ที่ทำในด้านใดด้านหนึ่ง เป็นไปได้เพราะ dsync เข้าถึงได้
บันทึกดัชนีของ Dovecot ที่ติดตามการเปลี่ยนแปลง เป็นไปได้แน่นอน
ข้อขัดแย้งระหว่างการควบรวมกิจการ สิ่งเหล่านี้จะได้รับการแก้ไขอย่างปลอดภัย ดู ดีซิงค์ ออกแบบ เอกสาร
สำหรับข้อมูลเพิ่มเติม
dsync ใช้ไฟล์การกำหนดค่าเดียวกันกับส่วนที่เหลือของ Dovecot (ผ่าน นกพิราบ(1) เลขฐานสอง).
การกำหนดค่าทั้งหมดสามารถเปลี่ยนแปลงได้โดยให้พารามิเตอร์ -c กับการกำหนดค่าอื่น
หรือใช้พารามิเตอร์ -o เพื่อแทนที่การตั้งค่าเฉพาะ เมื่อดำเนินการ dsync ระยะไกล
โปรแกรมทำงานในลักษณะเดียวกัน: ใช้การกำหนดค่าในเครื่องของตัวเอง
dsync สามารถทำงานแบบสแตนด์อโลนได้อย่างสมบูรณ์ ไม่ต้องการกระบวนการเซิร์ฟเวอร์ Dovecot ใด ๆ
ให้ทำงาน ยกเว้นเมื่อใช้พารามิเตอร์ -u เพื่อทำa userdb ค้นหาจากกระบวนการตรวจสอบสิทธิ์
dsync สามารถซิงค์ผู้ใช้หนึ่งรายหรือหลายรายโดยใช้พารามิเตอร์ -u หรือ -A เพื่อความต่อเนื่อง
คุณสามารถใช้กระบวนการจำลองแบบ Dovecot ซึ่งจะรัน dsync . โดยอัตโนมัติ
เมื่อใดก็ตามที่ข้อความมีการเปลี่ยนแปลง
OPTIONS
เหตุการณ์ที่ นกพิราบ(1) ตัวเลือก:
-D เปิดใช้งานข้อความฟุ่มเฟือยและแก้ไขข้อบกพร่อง
-o การตั้งค่า=ความคุ้มค่า
แทนที่การกำหนดค่า การตั้งค่า ราคาเริ่มต้นที่ /etc/dovecot/dovecot.conf และจาก
userdb กับที่กำหนด ความคุ้มค่า. เพื่อแทนที่การตั้งค่าหลายรายการ -o ตัวเลือก
อาจระบุได้หลายครั้ง
-v เปิดใช้งานการใช้คำฟุ่มเฟือย รวมทั้งตัวนับความคืบหน้า
คำสั่งเฉพาะ ตัวเลือก:
-1 ทำการซิงโครไนซ์ทางเดียวแทนการซิงโครไนซ์แบบสองทาง
-A ถ้า -A มีตัวเลือกให้ คำสั่ง จะดำเนินการสำหรับผู้ใช้ทั้งหมด โดยใช้
ตัวเลือกนี้ร่วมกับผู้ใช้ระบบจาก userdb { คนขับรถ = passwd } ไม่ใช่
แนะนำเพราะมันมีผู้ใช้ที่มี UID ต่ำกว่าหนึ่ง
กำหนดค่าด้วย first_valid_uid การตั้งค่า
เมื่อใช้โมดูล SQL userdb ตรวจสอบให้แน่ใจว่า วนซ้ำ_query การตั้งค่าใน
/etc/dovecot/dovecot-sql.conf.ext ตรงกับเค้าโครงฐานข้อมูลของคุณ เมื่อใช้
โมดูล LDAP userdb ตรวจสอบให้แน่ใจว่า วนซ้ำ_attrs และ iterate_filter การตั้งค่าใน
/etc/dovecot/dovecot-ldap.conf.ext ตรงกับสคีมา LDAP ของคุณ มิฉะนั้น นกพิราบ(1)
จะไม่สามารถทำซ้ำผู้ใช้ทั้งหมดได้
-F ไฟล์
ดำเนินการ คำสั่ง สำหรับผู้ใช้ทั้งหมดใน ไฟล์. สิ่งนี้คล้ายกับ -A
ตัวเลือก แต่แทนที่จะรับรายชื่อผู้ใช้จาก userdb พวกเขาจะถูกอ่าน
จากที่ให้มา ไฟล์. ไฟล์ มีหนึ่งชื่อผู้ใช้ต่อบรรทัด
-N ซิงโครไนซ์เนมสเปซที่มีอยู่ทั้งหมด ตามค่าเริ่มต้น เฉพาะเนมสเปซที่ไม่
มีการซิงโครไนซ์การตั้งค่าตำแหน่งที่ชัดเจน
-P เรียกใช้ a doveadm-ล้าง(1) สำหรับที่เก็บข้อมูลปลายทาง (ระยะไกล) หลังจากการซิงโครไนซ์
-R ทำการซิงค์ย้อนกลับ โดยปกติข้อความจะถูกผลักจากระบบภายในไปยัง
ปลายทาง (ระยะไกล). ตัวเลือกนี้จะย้อนกลับโฟลว์ และจะดึงข้อความแทน
จากระยะไกลไปยังที่จัดเก็บในตัวเครื่อง
-S socket_path
อาร์กิวเมนต์ของตัวเลือกอาจเป็นพาธสัมบูรณ์ไปยังซ็อกเก็ตโดเมน UNIX ในเครื่องหรือ
ชื่อโฮสต์และพอร์ต (ชื่อโฮสต์:พอร์ต) เพื่อเชื่อมต่อรีโมตโฮสต์ผ่าน TCP
เบ้า.
สิ่งนี้ทำให้ผู้ดูแลระบบสามารถดำเนินการได้ นกพิราบ(1) คำสั่งทางไปรษณีย์ผ่านที่กำหนด
เบ้า.
-T วินาที
ระบุเวลาเป็นวินาที นานแค่ไหน นกพิราบ(1) ควรรอให้ I/O . ชะงัก
การดำเนินงาน ระยะหมดเวลาเริ่มต้นคือ 600 วินาที
-U สิ่งนี้ถูกใช้ภายในโดยตัวจำลองแบบเพื่อให้ dsync แจ้งเตือนเมื่อ
การซิงโครไนซ์เสร็จสิ้น
-d ใช้ปลายทางเริ่มต้นซึ่งค้นหาจาก mail_replica userdb พิเศษ
สนาม
-g กล่องจดหมาย_guid
เช่นเดียวกับ -m แต่ค้นหากล่องจดหมายที่จะซิงโครไนซ์โดย GUID แทนชื่อ
-l วินาที
ล็อค dsync สำหรับผู้ใช้รายนี้ รอสูงสุด วินาที ก่อนจะยอมแพ้ นี้
ควรใช้พารามิเตอร์เพื่อหลีกเลี่ยงการซิงโครไนซ์ที่เสียหายหากเป็นไปได้
dsync กำลังถูกเรียกใช้พร้อมกันสำหรับผู้ใช้รายเดียวกัน
-m ตู้จดหมาย
ซิงโครไนซ์เฉพาะชื่อเมลบ็อกซ์นี้
-n namespace
ซิงโครไนซ์เฉพาะเนมสเปซที่ระบุ พารามิเตอร์นี้สามารถใช้ได้หลายค่า
ครั้ง
-r rawlog_path
เรียกใช้ dsync จากระยะไกล เขียนทราฟฟิกอินพุต/เอาต์พุตระยะไกลไปยังบันทึกที่ระบุ
ไฟล์
-s Previous_state
ใช้การซิงโครไนซ์แบบมีสถานะ หากไม่ทราบสถานะก่อนหน้า ให้ใช้ช่องว่าง
สตริง สถานะใหม่จะถูกพิมพ์ไปยังเอาต์พุตมาตรฐานเสมอ
-u ผู้ใช้/หน้ากาก
เรียกใช้ คำสั่ง เฉพาะที่ให้มา ผู้ใช้งาน. ก็ยังใช้ได้'*'และ'?'
สัญลักษณ์แทน (เช่น -u *@example.org)
เมื่อทั้ง -A ตัวเลือกหรือ -F ไฟล์ ตัวเลือกหรือ -u ผู้ใช้งาน ถูกระบุ
คำสั่ง จะถูกดำเนินการกับสภาพแวดล้อมของผู้ใช้ที่เข้าสู่ระบบในปัจจุบัน
-x กล่องจดหมาย_mask
ยกเว้นชื่อ/มาสก์ของกล่องจดหมายที่ระบุ หน้ากากอาจมี "?"และ"*"
ตัวแทน พารามิเตอร์นี้สามารถใช้ได้หลายครั้ง
อาร์กิวเมนต์
ปลายทาง
อาร์กิวเมนต์นี้ระบุปลายทางที่ซิงโครไนซ์ สามารถเป็นหนึ่งใน:
ที่ตั้ง
เหมือนกับ mail_location การตั้งค่า เช่น maildir:~/ Maildir
ระยะไกล:เข้าสู่ระบบ@โฮสต์
ใช้ dsync_remote_cmd การตั้งค่าเพื่อเชื่อมต่อกับรีโมตโฮสต์ (โดยปกติผ่านทาง
สช)
คำนำหน้าระยะไกล: login@host
สิ่งนี้เหมือนกับรีโมต ยกเว้น "user@domain\n" ถูกส่งก่อน dsync
โปรโตคอลเริ่มต้นขึ้น ซึ่งช่วยให้สามารถใช้สคริปต์ wrapper ที่เชื่อถือได้ซึ่ง
รัน doveadm dsync-server โดยอ่านชื่อผู้ใช้จากบรรทัดแรก
ทีซีพี:โฮสต์[:พอร์ต]
เชื่อมต่อกับเซิร์ฟเวอร์ doveadm ระยะไกลผ่าน TCP พอร์ตเริ่มต้นถูกระบุโดย
doveadm_port การตั้งค่า
ทีซีพีเอส:โฮสต์[:พอร์ต]
สิ่งนี้เหมือนกับ tcp แต่มี SSL
EXIT สถานภาพ
ดีซิงค์ จะออกด้วยค่าใดค่าหนึ่งต่อไปนี้:
0 การซิงโครไนซ์ทำได้อย่างสมบูรณ์
2 การซิงโครไนซ์ทำได้โดยไม่มีข้อผิดพลาด แต่การเปลี่ยนแปลงบางอย่างไม่สามารถทำได้ ดังนั้น
กล่องจดหมายไม่ได้รับการซิงโครไนซ์อย่างสมบูรณ์ การเรียกใช้ dsync อีกครั้งมักจะช่วยแก้ปัญหานี้ได้
โดยทั่วไปแล้ว สิ่งนี้จะเกิดขึ้นสำหรับลำดับการแก้ไขข้อความที่มีกล่องจดหมายที่สร้างขึ้นใหม่
นอกจากนี้ยังสามารถเกิดขึ้นได้ถ้ากล่องจดหมายใดกล่องหนึ่งเปลี่ยนแปลงระหว่างการซิงค์
1, >2
การซิงโครไนซ์ล้มเหลว
ตัวอย่าง
การประสาน
ซิงโครไนซ์เมลบ็อกซ์กับเซิร์ฟเวอร์ระยะไกล ข้อผิดพลาดใด ๆ จะถูกเขียนไปยัง stderr
นกพิราบ ซิงค์ -u [ป้องกันอีเมล] ระยะไกล:server-replica.example.com
หากคุณต้องการพารามิเตอร์ที่ซับซ้อนมากขึ้นใน ssh คุณสามารถใช้เช่น:
นกพิราบ ซิงค์ -u [ป้องกันอีเมล] SSH -i id_dsa.dovecot \
[ป้องกันอีเมล] นกพิราบ dsync-เซิร์ฟเวอร์ -u [ป้องกันอีเมล]
การแปลง
สมมติว่า mail_location การตั้งค่าใน /etc/dovecot/conf.d/10-mail.conf ถูกตั้งค่าเป็น:
mail_location = เอ็มดีบ็อกซ์:~/mdbox, ผู้ใช้ระบบที่เข้าสู่ระบบอาจแปลงเมลของเธอ/ของเขาจาก
Maildir ในโฮมไดเร็กทอรีของเธอ/ของเขาไปยังรูปแบบกล่องจดหมาย mdbox ผู้ใช้ต้องดำเนินการ
คำสั่ง:
นกพิราบ ซิงค์ จดหมาย:~/ Maildir
หากคุณต้องการทำสิ่งนี้โดยไม่หยุดทำงาน คุณสามารถทำการแปลงทีละผู้ใช้ได้
เริ่มแรก:
· การกำหนดค่าใช้ mail_location = จดหมาย:~/ Maildir
·ตั้งค่าความเป็นไปได้ในการทำตำแหน่งอีเมลต่อผู้ใช้โดยใช้ userdb ฟิลด์พิเศษ
จากนั้นสำหรับผู้ใช้แต่ละคน:
1 วิ่ง นกพิราบ ซิงค์ หนึ่งครั้งเพื่อทำการแปลงเริ่มต้น
2 วิ่ง นกพิราบ ซิงค์ อีกครั้งเพราะการแปลงครั้งแรกอาจใช้เวลาสักครู่
และการเปลี่ยนแปลงใหม่อาจเกิดขึ้นได้ในระหว่างนั้น ใช้ครั้งที่สองนี้เท่านั้น
การเปลี่ยนแปลงจึงควรเป็นไปอย่างรวดเร็ว
3. อัปเดตฟิลด์พิเศษของเมลใน userdb เป็น เอ็มดีบ็อกซ์:~/mdbox. หากคุณกำลังใช้แคชตรวจสอบสิทธิ์
คุณต้องล้างออก เช่น นกพิราบ รับรองความถูกต้อง แคช ล้าง.
4. รอสักครู่แล้วฆ่า (doveadm kick) imap . ที่มีอยู่ทั้งหมดของผู้ใช้
และเซสชัน pop3 (ที่ยังคงใช้ maildir)
5 วิ่ง นกพิราบ ซิงค์ อีกครั้งเพื่อใช้การเปลี่ยนแปลงขั้นสุดท้ายที่อาจทำได้ หลังจาก
นี้ไม่ควรมีการเปลี่ยนแปลง Maildir เนื่องจากตำแหน่งอีเมลของผู้ใช้มี
มีการเปลี่ยนแปลงและกระบวนการที่มีอยู่ทั้งหมดที่ใช้นั้นถูกฆ่า
เมื่อแปลงผู้ใช้ทั้งหมดแล้ว คุณสามารถตั้งค่าเริ่มต้นได้ mail_location ไปที่ mdbox และ
ลบตำแหน่งอีเมลต่อผู้ใช้ออกจาก userdb.
รายงาน ข้อบกพร่อง
รายงานจุดบกพร่อง รวมทั้ง นกพิราบ -n ส่งออกไปยังรายชื่อผู้รับจดหมาย Dovecot
<[ป้องกันอีเมล]>. ข้อมูลเกี่ยวกับการรายงานจุดบกพร่องสามารถดูได้ที่:
http://dovecot.org/bugreport.html
ใช้ doveadm-sync ออนไลน์โดยใช้บริการ onworks.net