ในระบบคอมพิวเตอร์ที่มีผู้ใช้จำนวนมากเข้าใช้งาน application ใดอันใดพร้อมๆกัน ย่อมหนีไม่พ้นที่จะมีการออกแบบให้โครงสร้างมีการแบ่งงานกันทำ
ไม่ว่าจะอยู่ในรูปของ cluster ตลอดไปถึง load balancer ก็ตามสิ่งเหล่านี้ส่งผลดีต่อระบบแต่สร้างความหนักใจให้กับ developer หรือแม้กระทั่ง
Administrator ไม่ใช้น้อยเนื่องจาก log files ที่ได้จากการทำงานมักกระจัดกระจายกันอยู่ทำให้ยากแก่การวิเคราะห์เหตุการณ์ต่างๆ
ตัวอย่างเช่น Java Web Application 1 ตัวถูกแบ่งออกเป็น 2 server แล้วเขียน log file ออกมาในแต่ละ server ดังนี้
[server1]2010-04-01 20:00:17.015 - Loading data from some table...2010-04-01 20:00:17.567 - ***[Error Terminate.]2010-04-01 20:00:20.833 - Calculating balance...
[server2]2010-04-01 20:00:16.015 - Update coporate data ...2010-04-01 20:00:17.507 - Update success2010-04-01 20:00:18.476 - Delete user name id GOD
เราสามารถใช้ command ในการ merge files ทั้งสองเข้าได้กันได้ดังนี้
$cat server1.log server2.log2010-04-01 20:00:17.015 - Loading data from some table...2010-04-01 20:00:17.567 - ***[Error Terminate.]2010-04-01 20:00:20.833 - Calculating balance...2010-04-01 20:00:16.015 - Update coporate data ...2010-04-01 20:00:17.507 - Update success2010-04-01 20:00:18.476 - Delete user name id GOD$cat server1.log server2.log | sort2010-04-01 20:00:16.015 - Update coporate data ...2010-04-01 20:00:17.015 - Loading data from some table...2010-04-01 20:00:17.507 - Update success2010-04-01 20:00:17.567 - ***[Error Terminate.]2010-04-01 20:00:18.476 - Delete user name id GOD2010-04-01 20:00:20.833 - Calculating balance...$cat server1.log server2.log | sort > serverlog.log
หรืออาจใช้ควบคู่กันกับ uniq เพื่อช่วยจัดการข้อมูลที่ซ้ำซ้อนก็ได้ครับ
สำหรับ MS-DOS ก็คงทำเป็นบรรทัดลำบากถ้าเขียนเป็นทีละคำสั่งน่าจะง่ายกว่าดังนี้
c:\>type server1.log > temp.logc:\>type server2.log >> temp.logc:\>sort temp.log > serverlog.log
1 comment:
มัน merge โดยดูจาก เวลาเหรอครับ เก่งจัง
Post a Comment