История процессов в системах Unix / Linux

11

Я знаю, что ps -eflпоказывает запущенные процессы в * nix системах.

Я хотел бы проверить историю из ( в прошлом) процессов, которые выполняются на конкретной машине, желательно всю информацию psпредоставляет (то есть %CPU, %MEM).

Какие утилиты командной строки я могу использовать, хранится ли эта информация где-то подобно .bash_historyфайлу?

синтагма
источник
2
На * nix , так и будет ps -efl. ps auxтолько для BSD / Linux.
Стефан Шазелас
Вы могли бы потенциально настроить SNMP и что-то для периодического опроса демона SNMP для достижения этой цели. Я сделал это для использования памяти для процессов в течение определенного периода времени.
Лоуренс
как описано здесь: serverfault.com/questions/386956/pid-history-of-a-process , некоторые процессы публикуют свои PID в системном журнале (или могут быть сделаны для этого).
Билл

Ответы:

5

Попробуй atop. Он может хранить настраиваемую историю различной системной информации (процессы и использование процессора, памяти, диска и сети). Примечание: он не может записывать все, конечно; он просто делает "снимки" периодически.

РЕДАКТИРОВАТЬ: В случае, если это не ясно, есть atopдемон, который делает периодические снимки, хранящиеся в /var/log/atop(каталог, используемый в Debian).

vinc17
источник
2
Возможно, заслуживает внимания: он не может заглядывать в прошлое, он видит процессы только во время работы.
Гюнтберт
3
@guntbert Поскольку он периодически сохраняет то, что видит, и его можно воспроизвести с помощью -rопции, это способ заглянуть в прошлое.
vinc17
2
Верно (именно поэтому я сказал «возможно»), но это, конечно, работает только после запуска службы, тогда как OP может ожидать, что произойдет еще раньше.
Гюнтберт