Сохранение даты в фактическом файле истории bash

При добавлении "HISTTIMEFORMAT" в bashrc временные метки выполнения команды становятся доступными при запуске команды "history".

Но сами отметки времени не сохраняются в файле bash_history (по крайней мере, не в виде обычного текста).

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

Если временные метки сохраняются в самом файле истории, но просто не отображаются в редакторе при открытии файла bash_history, и все еще можно просмотреть эти временные метки, используя саму команду history в мошенническом файле истории bash, тогда этого тоже было бы достаточно.

Спасибо

1
задан 18 July 2021 в 02:36
3 ответа

Это пример истории bash (при использовании HISTTIMEFORMAT)

#1625963751
sleep 45 ; ssh proxy.lan

число 1625963751 - это временная метка unix ( https://en.wikipedia.org/wiki/Unix_time ).

если вы используете Linux, у date есть возможность отображать эту дату в человеческой форме.

em444$ date -d @1625963751
Sat Jul 10 20:35:51 EDT 2021
1
ответ дан 28 July 2021 в 13:08

отредактируйте /etc/bashrc и добавьте эту строку внизу:

PROMPT_COMMAND="echo `date +'%F %H:%M'` `whoami` `history|tail -1` >> ~/history.txt; $PROMPT_COMMAND"

Я не уверен, что если вы измените ~ на root, \root\history.txt может быть доступен всем пользователям.

0
ответ дан 28 July 2021 в 13:08

export HISTTIMEFORMAT='(%Y-%m-%d) (%H:%M:%S) ' Попробуйте эту строку.

0
ответ дан 28 July 2021 в 13:08

Теги

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