#linux #bash #shell #time #syslog
#linux #bash #оболочка #время #системный журнал
Вопрос:
Я знаю, что для регистрации времени, затраченного на выполнение команды / скрипта в Linux, мы можем указать «time <command/ script>».
Тем не менее, я ищу любой способ, как я могу регистрировать все команды, введенные пользователем в оболочке bash, и время, затраченное на каждую команду, даже не вводя время перед каждой командой пользователем.
В основном в нашей организации нам необходимо отслеживать все команды, введенные пользователями, и получать время, затраченное на определенные команды на каждой машине. Возможно ли это вообще?
Комментарии:
1. Короче говоря — НЕТ. В пользовательской оболочке нет ничего, что регистрировало бы время каждой команды. Историю оболочки можно использовать, чтобы узнать, что было запущено, но не сколько времени заняла каждая команда.
2. Я позволю себе не согласиться. Вы могли бы взломать что-то вместе, измеряя время на стене, используя
trap DEBUG
иPROMPT_COMMAND
. Однако злоумышленники всегда найдут способ обойти ваше ведение журнала.3. Это может сработать для отдельных команд; если вы объединяете конвейеры, вам не повезло…
4. @tink Я так не думаю. Несмотря
DEBUG
на то, что выполняется перед каждой отдельной командой,PROMPT_COMMAND
выполняется только при каждом приглашении, поэтому после каждого приглашения вы можете измерить время между первымDEBUG
и следующим приглашением. Настоящая боль начинается с фоновых заданий (cmd amp;
).