ประวัติกระบวนการในระบบ Unix / Linux


11

ฉันรู้ว่าps -eflแสดงกระบวนการทำงานบนระบบ * nix

ฉันต้องการที่จะตรวจสอบประวัติของ (ที่ผ่านมา) กระบวนการที่ได้รับการทำงานบนเครื่องโดยเฉพาะอย่างยิ่งกับทุกข้อมูลที่psให้ (เช่น%CPU, %MEM)

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


2
บนระวัง *ps -eflที่ค่อนข้างจะ ps auxสำหรับ BSD / Linux เท่านั้น
Stéphane Chazelas

คุณสามารถตั้งค่า SNMP และบางอย่างเพื่อสำรวจ SNMP daemon เป็นระยะเพื่อให้บรรลุสิ่งนี้ ฉันทำสิ่งนี้เพื่อการใช้หน่วยความจำสำหรับกระบวนการในช่วงเวลาหนึ่ง
ลอเรนซ์

ตามที่อธิบายไว้ที่นี่: serverfault.com/questions/386956/pid-history-of-a-processกระบวนการบางกระบวนการเผยแพร่ PIDs ไปยัง syslog (หรือสามารถทำได้)
billc

คำตอบ:


5

ลองatopดู สามารถเก็บประวัติที่กำหนดค่าได้ของข้อมูลระบบต่างๆ (กระบวนการและ CPU, หน่วยความจำ, ดิสก์และการใช้เครือข่าย) หมายเหตุ: ไม่สามารถบันทึกทุกอย่างได้แน่นอน มันจะใช้เวลา "ภาพรวม" เป็นระยะ

แก้ไข: ในกรณีที่ไม่ชัดเจนมีatopdaemon ที่ทำสแนปชอตเป็นระยะซึ่งเก็บไว้ใน/var/log/atop(ไดเรกทอรีที่ใช้ภายใต้ Debian)


2
อาจจะเป็นสิ่งสำคัญ: มันไม่สามารถมองเข้าไปในอดีตมันเห็นกระบวนการในขณะที่มันกำลังทำงานอยู่
guntbert

3
@guntbert เนื่องจากบันทึกสิ่งที่เห็นเป็นระยะและสามารถเล่นซ้ำได้ด้วย-rตัวเลือกจึงเป็นวิธีที่จะมองย้อนกลับไปในอดีต
vinc17

2
จริง (นั่นคือเหตุผลที่ฉันพูดว่า "อาจจะ") แต่แน่นอนว่าใช้งานได้หลังจากเริ่มให้บริการในขณะที่ OP อาจคาดหวังว่าจะเห็นสิ่งที่เกิดขึ้นมาก่อน
guntbert
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.