linux: การตรวจสอบตามกระบวนการทุก 10 นาทีพร้อมการเข้าถึงประวัติ


5

ฉันไม่รู้วิธีที่ดีกว่าในการถามคำถามของฉันดังนั้นคุณจะได้รับคำถามที่ตั้งชื่ออย่างน่ากลัว

ฉันจะอธิบายสิ่งที่ฉันต้องการจะทำซึ่งอาจจะช่วยคุณได้

ฉันต้องการให้เครื่อง linux ของฉันตรวจสอบอย่างต่อเนื่อง (ทุก 10 นาที) กระบวนการทั้งหมดในเครื่องของฉัน ข้อมูลจากแต่ละกระบวนการที่ฉันต้องการคือชื่อการใช้งาน CPU หน่วยความจำที่จัดสรร (เสมือน) และหน่วยความจำภายใน (ram)

หากต้องดูรายงานตามช่วงเวลาเหล่านี้พวกเขาจะมีลักษณะดังนี้:

PROCESS    CPU    RAM    VIRTUAL
name1    %    MB    MB
name2    %    MB    MB
...etc..etc

รายงานเหล่านี้ควรถูกจัดเก็บในลักษณะที่ฉันสามารถเข้าถึงได้ในภายหลังโดยกำหนดขอบเขตวันที่ / เวลา (ช่วง) ตัวอย่างเช่นถ้าฉันต้องการดูประวัติกระบวนการของฉันตั้งแต่เวลา 12:00:00 1.12.12 ถึง 12:00:00 2.12.12 ฉันสามารถ - และควรให้ประวัติกระบวนการทุก 10 นาทีระหว่างสิ่งเหล่านั้น เส้นขอบวันที่ / เวลา

รูปแบบของการส่งคืนสินค้าไม่ใช่สิ่งสำคัญที่จะได้รับการจัดการโดยสคริปต์อยู่แล้วและสามารถแก้ไขเป็นสิ่งที่ฉันต้องการ

ฉันได้ตรวจสอบบางสิ่งจนถึงตอนนี้ แต่ไม่พบสิ่งที่ตรงกับความต้องการของฉันอย่างชัดเจน ในบรรดาสิ่งที่ฉันค้นหา: sar , ฟรี (1) , บนสุด (1) .. และอีกสองสามอย่าง

มันควรจะเป็นปัญหาง่าย ๆ ฉันสามารถดูข้อมูลทั้งหมดนี้ได้ง่ายๆโดยการดูที่ของฉันhtopแต่ฉันต้องการเครื่องมือที่จะรวบรวมฟิลด์ที่ต้องการให้ฉันสำหรับแต่ละกระบวนการทุก ๆ 10 นาทีจากนั้นก็ให้ฉันแยกส่วนที่ ข้อมูลตามขอบเขตวันที่ / เวลา (ช่วง)

หมายเหตุ: ฉันมีประสบการณ์ จำกัด กับ linux ดังนั้นโปรดให้ข้อมูลโดยละเอียด

Note2: ผลลัพธ์ที่ต้องการจะเป็นเช่นนี้ (หลังจากได้รับช่วงที่ต้องการ)

CPU USAGE BY PROCESS:
proc_nameA 1,2,2,2,2,2...... numbers represent % usage every 10 minutes...
proc_nameB 4,3,3,6,1,2......

แนวคิดเดียวกันกับข้อมูลอื่น ๆ


ฉันเชื่อว่า collectd สามารถทำสิ่งที่คุณต้องการ collectd.orgมันจะสร้างไฟล์ rrdtool ซึ่งคุณสามารถสร้างกราฟได้
Derobert

คำตอบ:


8

ลองatopดู

มันจะบันทึกข้อมูลระบบเหล่านี้ทุก ๆ 5 หรือ 10 นาที (ขึ้นอยู่กับการกระจายของคุณเลือกให้คุณ) เป็น daemon และวางไว้ในไฟล์ไบนารี จากนั้นใช้

atop -r

เพื่อดูเนื้อหาของ logfile มาตรฐานของวันนี้แบบโต้ตอบ มันเหมือนกับhtopข้อมูล I / O พิเศษที่ให้คุณย้อนเวลากลับไปและดูว่าเกิดอะไรขึ้นในช่วงเวลาเหล่านั้น กดtเพื่อไปข้างหน้าและShift+ tเพื่อย้อนกลับ

คุณสามารถชี้ไปที่ช่วงเวลาที่ต้องการ จาก manpage:

With the flag -b (begin time) and/or -e (end time) followed by a time argument
of the form HH:MM, a certain time period within the raw file can be selected.

มันไม่ได้กำหนดค่ามากเกินไปในสิ่งที่เขียนในไฟล์ดิบ

ฉันแนะนำให้คุณอ่าน manpage of atop มากขึ้นเช่นกันเพื่อเริ่มต้นเช่นอ่านเนื้อหาของ logfile ของเมื่อวาน

นี่คือวิธีที่เครื่องของฉัน 'zarafa' แสดงในเช้าวันนี้ระหว่าง 7:35:40 ถึง 7:45:40:

ภาพหน้าจอบนยอด


ดูเหมือนว่าเป็นการเริ่มต้นที่ดี - แต่สิ่งนี้สามารถรองรับประเภทการเข้าถึงที่ฉันต้องการได้หรือไม่? ผ่าน - วันที่ / เวลาขอบเขต (ช่วง) การเข้าถึง? ถ้าไม่มีมันจะมีวันที่ / เวลาของรายการเฉพาะเพื่อให้ฉันสามารถแยกวิเคราะห์ของฉันเองได้หรือไม่? นานแค่ไหนที่จะเก็บข้อมูลเก่า? ฉันสามารถตัดสินใจว่าจะรวบรวมข้อมูลใดได้บ้าง
Inbar Rose

2
@InbarRose นั่นเป็นเพียง RTFM imo ตามที่ฉันได้ชี้ไปแล้วในคำตอบของฉัน ฉันแนะนำให้ถามคำถามที่เฉพาะเจาะจงมากกว่านี้ถ้าคุณไม่สามารถทำสิ่งที่คุณต้องการได้
gertvdijk
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.