Последняя команда, выданная на компьютере GNU/Linux

Последняя команда, выданная на компьютере GNU/Linux

Кто-то в списке рассылки моей местной группы пользователей Linux спросил, есть ли способ узнать последнюю команду, выполненную в системе GNU/Linux.

Я полагаю, мы говорим о последней команде в системном масштабе. После некоторых размышлений, если ограничить набор команд теми, которые были введены реальными пользователями с помощью интерактивной консоли, то последняя должна была быть зарегистрирована в истории команд.

Другой способ рассмотрения этого вопроса — спросить, как определить, какой процесс был последним, созданным на компьютере GNU/Linux, относительно того, выполняется ли он еще или уже завершил выполнение, какие процессы были родительскими и другую соответствующую информацию.

решение1

Я нашел пакет для Linux, который помогает вести учет процессов.

На моей системе Ubuntu 9.10 я сделал следующее, чтобы установить программу «acct»:

sudo apt-get install acct

Затем необходимо создать пустой файл журнала, что можно сделать следующим образом:

sudo touch /var/log/pacct

После этого необходимо активировать учет процессов:

sudo /usr/sbin/accton /var/log/pacct

С этого момента процессы регистрируются вместе с пользователем, который их запустил, и соответствующим терминалом.

Файл журнала можно просмотреть с помощью этой команды:

lastcomm -f /var/log/pacct

Я все еще изучаю эту программу... но, похоже, она мне помогает.

решение2

Для конкретного пользователя (и оболочки): история

Для текущего процесса: ps

решение3

Ну, системная версия выглядит довольно сложной. Такая система подразумевает, что должен быть некий процесс, который отслеживает каждого пользователя .bash_history. Затем, когда он обновляется, обновляется центральная база данных. Как только это будет сделано, мы можем быть правы в расширении команды "history", которая выбирает из центральной базы данных. Неплохая идея, хотя.

решение4

Вы можете использоватьСнупидля мониторинга всех выполняемых команд.

Связанный контент