При входе каждый раз выполняется команда

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

sudo apt-get install [something]

Я хочу добавить [что-то] к файлу журнала в своем корневом каталоге, который будет похож на следующее:

[timestamp] [something]
2012-10-02 mysql-server
2012-10-03 ruby1.9.1
2012-10-06 gedit-plugins
2012-10-07 gnome-panel synaptic

Что самый легкий путь состоит в том, чтобы заставить это произойти автоматически?

0
задан 3 October 2012 в 05:33

2 ответа

Обратите внимание, что любое использование sudo в системе уже будет зарегистрировано в /var/log/auth.log. Этот файл также содержит другую информацию, связанную с авторизацией (см. более подробную информацию о файлах журналов ).

Sudo также регистрирует не только метку времени, но и пользователя, который вызвал sudo, рабочий каталог и многое другое. Если вы хотите просто извлечь использование apt-get install и записать только имя пакета, это можно сделать следующим образом:

zcat /var/log/auth.log* | awk  '/apt-get install/ {print $1 " " $2 " " $16}'

Я не знаю, важно ли для вас форматирование даты, я не беспокоить, так как включение в командную строку выше сделало бы его длиннее и менее читабельным. Но если вы хотите иметь более длинный bash-скрипт, который преобразует формат, date -I -d "Apr 27" преобразует его для вас.

(Кстати, ваш пользователь должен быть членом группы adm, чтобы прочитать /var/log/auth.log. Если вы видите Permission denied, то вам может понадобиться добавить команду grep с помощью sudo или добавьте себя в группу с sudo addgroup USERNAME adm, где USERNAME - ваше имя пользователя.)

0
ответ дан 3 October 2012 в 05:33

Самый простой способ сделать это - заменить apt-get скриптом-оберткой, который будет записывать данные в лог-файл, а затем вызвать apt-get, передав ему все параметры, полученные скриптом-оберткой (и возвращая код возврата оригинальная программа вернулась).

Если вы внимательно подражаете поведению исходной команды, никто не заметит никакой разницы.

0
ответ дан 3 October 2012 в 05:33

Другие вопросы по тегам:

Похожие вопросы: