เลือกออปชัน grep ให้เหมาะ ลดเวลาค้นหาได้มาก

ช่วงนี้รับงาน เพื่อเขียนโปรแกรมดึงข้อมูลจาก text file ทำเป็นรายงานสรุป โดยข้อมูลที่ได้มา มีจำนวนบรรทัดมากมายมหาศาล รวมๆ แล้วเป็น หมื่นล้านบรรทัด

ต้องหากระบวนการที่มีประสิทธิภาพมากที่สุดในการเขียนโปรแกรม และเมื่อได้วิธีการที่ผู้เขียนคิดว่าดีที่สุดแล้ว เลยนำมาเปรียบเทียบแชร์เล่าสู่กันฟัง

ข้อมูลที่อยู่ในไฟล์ แยกเป็นบรรทัด เหมือนกับ CSV ไฟล์ งานแรกที่ต้องทำคือ เขียนโปรแกรมเพื่อดึงข้อมูลเฉพาะบรรทัดที่มีคำที่ต้องการเท่านั้น

Continue reading “เลือกออปชัน grep ให้เหมาะ ลดเวลาค้นหาได้มาก”

โหลด mod_dav_svn ไม่สำเร็จ ฟ้องว่า undefined symbol: dav_register_provider

ขอแปะไว้กันลืม และเผื่อมีท่านใด เจอปัญหาเหมือนผมบ้าง หาอยู่นานพอสมควร เพื่อจะพยายามคอนฟิกเก็บข้อมูล subversion (svn) ไว้บน Web Server

หลังจากติดตั้ง “mod_dav_svn” แล้วพยายาม สตาร์ต httpd ไม่สำเร็จ ดังนี้

[root@repos ~]# service httpd restart
Stopping httpd:                                            [FAILED]
Starting httpd: httpd: Syntax error on line 210 of /etc/httpd/conf/httpd.conf: Syntax error on line 2 of /etc/httpd/conf.d/subversion.conf: Cannot load
/etc/httpd/modules/mod_dav_svn.so into server: /etc/httpd/modules/mod_dav_svn.so: undefined symbol: dav_register_provider
                                                          [FAILED]

Continue reading “โหลด mod_dav_svn ไม่สำเร็จ ฟ้องว่า undefined symbol: dav_register_provider”

คำสั่ง เพิ่ม ลบ แสดง route บน OS ต่างๆ

ไม่มีไรมาก ในบทความนี้ ขอรวบรวม วิธีการ เพิ่ม ลบ และ แสดง routing table บน OS ต่างๆ เพื่อผู้สนใจ และอาจสับสนในบางครั้ง เมื่อต้องดูแลจัดการเครื่องหลายแบบ

ตัวอย่างทั้งหมด แสดงการเพิ่ม และ ลบ route เพื่อไปยัง network “172.16.1.0/255.255.255.0” โดยผ่าน gateway “192.168.1.254”

ส่วนการแสดง routing table นั้น จะแสดงผลลัพธ์เฉพาะส่วนที่เพิ่ม route เท่านั้น

Continue reading “คำสั่ง เพิ่ม ลบ แสดง route บน OS ต่างๆ”

ว่าด้วยเรื่องเวลา atime, mtime, ctime ของไฟล์บน Unix

เวลาของไฟล์บน Unix มีประโยชน์อย่างมากสำหรับผู้ใช้ ไม่ว่าจะใช้ดูเพื่อหาว่า ไฟล์นี้ถูกเปลี่ยนแปลงไปเมื่อไร เก่าไป หรือใหม่กว่าอย่างไร

อีกประการ ยังถูกใช้โดยโปรแกรม Backup เพื่อเลือกไฟล์สำหรับการทำ Backup แบบ Incremental คือ เลือกเฉพาะไฟล์ที่เพิ่มขึ้นใหม่ หรือไฟล์ที่ถูกเปลี่ยนแปลงเท่านั้น

เวลาของไฟล์บน Unix มีอยู่ 3 ค่า คือ atime, ctime, mtime ในที่นี้จะอธิบายการเปลี่ยนแปลงของค่าเวลาต่างๆ ดังนี้

Continue reading “ว่าด้วยเรื่องเวลา atime, mtime, ctime ของไฟล์บน Unix”

ดักจับ Traffic ใน Network ด้วย tcpdump

tcpdump เป็นโปรแกรมประเภทเดียวกับ Sniffer, Wireshark คือใช้ในการดักจับ (capture) Traffic หรือ Packet ที่ รับ/ส่ง เข้า/ออก ระหว่างพอร์ตแลน (LAN) ของเซิรฟ์เวอร์เครื่องที่รันคำสั่ง และอุปกรณ์เครือข่าย (Router, Switch, HUB)

มีประโยชน์อย่างมาก เพื่อใช้ในการวิเคราะห์ ตรวจสอบ หรือแก้ปัญหาเกี่ยวกับ Network ได้

tcpdump ต้องรันด้วย root หรือเทียบเท่า และรันแบบ command line ติดตั้งมาเป็นดีฟอลต์บนลีนุกซ์เกือบทุกตระกูล เวอร์ชั่น จึงใช้งานได้สะดวก ไม่ต้องติดตั้งเพิ่มเติมเหมือนโปรแกรมอื่นๆ

ในที่นี้ขอแนะนำวิธีการใช้งานเบื้องต้นของ tcpdump

Continue reading “ดักจับ Traffic ใน Network ด้วย tcpdump”