Riwayat proses dalam sistem Unix / Linux

11

Saya tahu itu ps -eflmenunjukkan proses yang berjalan pada sistem * nix.

Saya ingin memeriksa riwayat proses (masa lalu) yang telah dijalankan pada mesin tertentu, terutama dengan semua informasi yang psdisediakan (yaitu %CPU, %MEM).

Utilitas baris perintah apa yang dapat saya gunakan, apakah informasi ini disimpan di suatu tempat mirip dengan .bash_historyfile?

syntagma
sumber
2
Pada * nix , itu agaknya ps -efl. ps auxhanya untuk BSD / Linux.
Stéphane Chazelas
Anda berpotensi mengatur SNMP dan sesuatu untuk polling daemon SNMP secara berkala untuk mencapai ini. Saya telah melakukan ini untuk penggunaan Memori untuk proses selama periode waktu tertentu.
Lawrence
seperti yang dijelaskan di sini: serverfault.com/questions/386956/pid-history-of-a-process , beberapa proses menerbitkan PID di sana ke syslog (atau dapat dibuat untuk melakukannya).
billc

Jawaban:

5

Coba atop. Itu dapat menyimpan sejarah yang dapat dikonfigurasi dari berbagai informasi sistem (proses, dan CPU, memori, disk dan penggunaan jaringan). Catatan: tentu saja tidak bisa merekam semuanya; itu hanya membutuhkan "snapshot" secara berkala.

EDIT: Dalam hal ini tidak jelas, ada atopdaemon yang melakukan snapshot berkala, disimpan di /var/log/atop(direktori yang digunakan di bawah Debian).

vinc17
sumber
2
Mungkin patut diperhatikan: tidak bisa melihat ke masa lalu, ia hanya melihat proses saat sedang berjalan.
guntbert
3
@ Guntbert Karena secara berkala menyimpan apa yang dilihatnya dan orang dapat memutar ulang itu dengan -ropsi, itu cara untuk melihat ke masa lalu.
vinc17
2
Benar (itu sebabnya saya katakan "mungkin"), tetapi itu tentu saja berfungsi hanya setelah memulai layanan, sedangkan OP mungkin mengharapkan untuk melihat apa yang terjadi bahkan sebelumnya.
guntbert