Delete column in text file with Notepad++

สำหรับใครที่ ค้นหาวิธีลบ column ใน text ที่ไม่ต้องการออกไป หลาย ๆ บรรทัดพร้อมกัน เดิมทีผมใช้คำสั่ง ใน Linux ตัดเอา ตอนนี้ค้นพบวิธีใหม่ ไม่จำเป็นต้องใช้ sed awk แค่ notepad++ บน windows ก็เอาอยู่ครับ ง่าย ๆ เลยคือ

“ใช้ ALT ลาก คลุม column ที่ต้องการลบ กด Del”

ง่ายไหมละครับ :-)

Posted in Programming | Tagged , , | Leave a comment

โชว์รหัสผ่าน Email ภายใต้ Plesk Control Panel

จาก entry เก่าที่ผ่านมาเจอปัญหาการย้ายอีเมล์ข้าม server ซึ่งก็ได้โซลูชั่นที่พอจะตอบโจทย์ได้ แต่จะทำอย่างไรละ หากต้องการย้ายเมล์ภายใต้โดเมนที่มีอีเมล์เยอะ ๆ จะไป force password เพื่อให้ access ได้ ก็ไม่ใช่เรื่อง จุดนี้ อย่างไรก็ต้องให้เป็นรหัสผ่านเดิม โดยจะต้องใช้เวลาในการดำเนินการให้รวดเร็วที่สุดเท่าที่จะทำได้ (น้อยสุดว่างั้นเถอะ) ก็ไปเจอ โซลูชั่น หนึ่ง ที่สามารถดูรหัสผ่านอีเมล์ได้ ก็คือผ่าน cmd อีกนั่นแหละ

เนื่องจาก Plesk เก็บรหัสผ่าน Email ด้วย BLOB วิธีการก็ง่าย ๆ ผ่าน command line โดยการ access ไปยัง db : psa ซึ่งเป็น db หลักของ plesk ที่ใช้เก็บข้อมูลทุกอย่างเกี่ยวกับ CP

# mysql -uadmin -p`cat /etc/psa/.psa.shadow` psa

จากนั้นก็คิวรี่ครับ

> SELECT CONCAT_WS(‘@’,mail.mail_name,domains.name),accounts.password FROM domains,mail,accounts WHERE domains.id=mail.dom_id AND accounts.id=mail.account_id ORDER BY domains.name ASC,mail.mail_name ASC;

ระบบก็จะแสดงรหัสผ่านออกมาให้เราเห็น แค่นี้ครับ แต่กรณีที่ต้องการนำไปใช้งานกับสคริปเพื่อ export , import กับระบบ automation ก็สามารถใช้คำสั่ง SQL ผ่าน phpMyAdmin ได้อีกเหมือนกันนะครับ ใช้คำสั่งตามนี้ครับ

> SELECT accounts.id, mail.mail_name, accounts.password, domains.name FROM domains LEFT JOIN mail ON domains.id = mail.dom_id LEFT JOIN accounts ON mail.account_id = accounts.id

โดยหลังจากใช้คำสั่ง จะยังไม่สามารถดูรหัสผ่านได้ในทันที เนื่องจาก Plesk เก็บรหัสผ่านด้วย BLOB โดยจะต้องกด export to csv มาอีกที ก็จะได้ รหัสผ่าน ออกมาคู่กับ email account ในรูปแบบ เฉพาะ ซึ่งจะเอาไปตัด ไปอะไรยังไงก็แล้วแต่วิธีการของแต่ละท่านนะครับ อันนี้ unix admin คงค้นได้ไม่ยากอยู่แล้ว

Posted in Server Configuration | Tagged , , , | Leave a comment

Transfering Domain under Plesk to Direct Admin

เจอปัญหาต้องย้ายไฟล์ จาก 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 สคริป ที่ว่ากันว่า โบราณ หรือยังครับ ก็เป็นอีก เคสหนึ่งที่ผมค่อนข้างประทับใจกับผมลับ เพราะว่าวิธีนี้ค่อนข้างเซฟและก็ตรวจสอบง่ายครับ

สำหรับไฟล์ต้นฉบับผมได้จากที่นี่

Posted in Server Configuration | Tagged , , , , | Leave a comment