Historique des processus dans les systèmes Unix / Linux

11

Je sais que cela ps -eflmontre les processus en cours d'exécution sur les systèmes * nix.

Je voudrais vérifier l'historique des processus (passés) qui ont été exécutés sur une machine particulière, de préférence avec toutes les informations psfournies (c'est %CPU-à- dire %MEM).

Quels utilitaires de ligne de commande puis-je utiliser? Ces informations sont-elles stockées quelque part de manière similaire au .bash_historyfichier?

syntagme
la source
2
Sur * nix , c'est plutôt ça ps -efl. ps auxpour BSD / Linux uniquement.
Stéphane Chazelas
Vous pouvez potentiellement configurer SNMP et quelque chose pour interroger périodiquement le démon SNMP pour y parvenir. J'ai fait cela pour l'utilisation de la mémoire pour les processus sur une période de temps.
Lawrence
comme décrit ici: serverfault.com/questions/386956/pid-history-of-a-process , certains processus y publient des PID pour syslog (ou peuvent être faits pour le faire).
billc

Réponses:

5

Essayez atop. Il peut conserver un historique configurable de diverses informations système (processus et utilisation du processeur, de la mémoire, du disque et du réseau). Remarque: il ne peut pas tout enregistrer, bien sûr; cela prend juste des "instantanés" périodiquement.

EDIT: Dans le cas où ce n'est pas clair, il y a un atopdémon qui fait les instantanés périodiques, stockés dans /var/log/atop(répertoire utilisé sous Debian).

vinc17
la source
2
Peut-être à noter: il ne peut pas regarder dans le passé, il ne voit que les processus en cours d'exécution.
guntbert
3
@guntbert Puisqu'il enregistre périodiquement ce qu'il voit et que l'on peut rejouer cela avec l' -roption, c'est une façon de se pencher sur le passé.
vinc17
2
Vrai (c'est pourquoi j'ai dit "peut-être"), mais cela ne fonctionne bien sûr qu'après avoir démarré le service, alors que le PO peut s'attendre à voir ce qui s'est passé avant.
guntbert