เจอปัญหาต้องย้ายไฟล์ จาก Plesk ไป DA ซึ่งมีหลายสิบโดเมน มาก ๆ ครั้นจะใช้ automation ก็แน่ใจได้เลยว่าไม่มี solutions ไหน ตอบสนองตรงจุดนี้ได้ สรุปตอนนี้เท่าที่ทำได้ คือการ
1. บีบ htdocs แล้วไปแตกแทน public_html ที่ฝั่ง DA แล้วจึง ปรับ base_dir ใหม่ หากเป็นพวก cms ที่มีการอ้างอิง absolute path
2. export db ไป import ที่ฝั่ง Direct Admin
4. config database call ให้เรียบร้อย
5. ทดสอบ charset และการเรียกสคริป ถ้าผ่านก็เรียบร้อย ถ้าไม่ผ่านก็ตัวใครตัวมัน แก้เป็น by case ไป
ทั้งหมดนี้คือวิธีการคร่าว ๆ หากโดเมนมีไฟล์เยอะ ไม่ใช่ปัญหา แต่ปัญหาที่เจอ คือสิ่งที่ผมกำลังจะเขียนต่อจากนี้ คือเรื่องของเมล์ อย่างที่ทราบว่า Plesk และ DA ยังไม่มี automation script ตัวไหน ย้ายไฟล์ backup แล้วไปแตกตาม architecture แล้ว enable site ใช้งานได้ทันที โดยไม่ต้องออกแรง ปัญหาใหญ่หลังจากจัดการ files / db แล้ว เรื่องที่ตามมาคือ อีเมล์ครับ ถ้ามีไม่กี่ account พอที่จะย้ายผ่าน mail client อย่าง thunderbird โดยใช้การ drag drop ผ่าน imap ข้าม server ได้ แต่ถ้ามีเมล์เยอะ ๆ อย่างลูกค้าผมที่เจอ อัดไปเต็ม ๆ โดเมนนึง 30-50 ขึ้นไป อาจมึนไปเป็นเดือนได้ เนื่องจากต้องมานั่งทำทีละ แอคเคาท์ มันก็ไม่ใช่เรื่อง วิธีที่ผมใช้ตอนนี้ ก็คือหาสคริป ย้าย ซึ่งก็ไปเจอสคริปหนึ่้งละครับ ดูดจาก pop3 ไปยัง imap ซึ่งวิธีนี้ไม่สงวนว่าจะใช้ได้แค่การย้ายเมล์จาก Plesk ไปเป็น DA แต่มันใช้งานได้ทุกระบบ ที่เปิดต้นทางทาง pop3 และปลายทางเป็น imap เอาละครับ เริ่มกันเลย
1. เนื่องจากสคริปเป็นภาษาเพิร์ล สามารถดาวน์โหลดได้ที่ pop3toimap.pl account
2. ตั้งค่า user password ทั้งฝั่งต้นทาง และฝั่งปลายทาง โดยสคริปตัวนี้สามารถทำงานได้ครั้งละหลาย account เลยครับ รูปแบบการเก็บ รหัสผ่านแต่ละ account ก็ง่ายมาก ตามนี้ครับ
popUsername password imapUsername password
จากนั้นก็เซฟเป็น text ชื่อไฟล์อะไรก็ได้ครับ โดย 1 บรรทัด ระบุแค่ 1 account หากต้องการเพิ่ม account ต่อไปก็ขึ้นบรรทัดใหม่ ทำแบบนี้ไปเรื่อย ๆ เท่าที่ต้องการ
3. สั่งรันตามนี้เลยครับ
# perl pop3toimap.pl -p <origin-address> -i <destination-address> -u users.txt
จากนั้นสคริปจะทำการ fetch messages จนครบแล้วทำการ ย้ายไปยัง server ใหม่ ทำแบบนี้ทีละ account จนครบทุก account หากมี error ระบบจะแจ้งกลับมา หรือหาก login failed ก็ลองเช็ค username/password ดูดี ๆ อีกครั้งหนึ่ง ซึ่งหลังจากรันสคริปเสร็จระบบจะแจ้ง จำนวน messages ขนาด และ จำนวน account ดังนี้ครับ
Summary of POP3 -> IMAP migration
Users migrated 38
Total messages 612
Total bytes 98371876
เป็นยังไงบ้างครับ พอที่จะเห็นศักยภาพของ perl สคริป ที่ว่ากันว่า โบราณ หรือยังครับ ก็เป็นอีก เคสหนึ่งที่ผมค่อนข้างประทับใจกับผมลับ เพราะว่าวิธีนี้ค่อนข้างเซฟและก็ตรวจสอบง่ายครับ
สำหรับไฟล์ต้นฉบับผมได้จากที่นี่