April 12th, 2017

Как узнать, когда в линуксе запускалась команда?

Как известно, список команд, запускаемых пользователем из командной строки, сохраняется bash’ем в файле ~/.bash_history . Но там они записываются просто в порядке запуска, а когда конкретно они запускались, неизвестно.

Внезапно обнаружилось, что информацию о времени запуска добавить очень просто, а она бывает очень полезна в процессе расследования всяких хаков и глюков.
Надо просто приделать к bash’у переменную HISTTIMEFORMAT – через /etc/profile, /etc/bash/bashrc, или персональные ~/.bashrc и ~/.profile:
export HISTTIMEFORMAT='%F %T '

Значение HISTTIMEFORMAT влияет только на формат вывода даты/времени при запуске history, его можно поменять в любой момент. Главное, чтоб при запуске bash’а эта переменная была хоть как-то определена, и тогда в .bash_history будут подписываться timestamp’ы:
#1491997427
cat .bashrc
#1491998079
tail .bash_history

и вот как посмотреть дату и время этих команд:
$ date -d '@1491997427'
Wed Apr 12 12:43:47 IST 2017
$ date -d '@1491998079'
Wed Apr 12 12:54:39 IST 2017

Оригинал этой записи в личном блоге.

(comment count unavailable | Комментировать в Dreamwidth)