Возможный дубликат:
использование команды history с ssh и получение вывода с отметками времени

В основном я хочу получить запись всех команд, выполненных на моем ssh-сервере, с их правильными временными метками. Коды, которые я пробовал:

ssh -i private_key user@ip 'export HISTFILE=~/.bash_history;export HISTTIMEFORMAT='%D-%T' ;set -o history; history' > myfile.txt

Когда я впервые захожу, а затем использую команду истории, я получаю все детали, включая дату и время. однако, когда я использую этот код, вместо получения времени, в которое была выполнена команда, я получаю текущее время (то есть, если я выполню этот код в 3 часа, все команды будут иметь свои временные метки как 3 часа)

1 ответ1

0

Как я уже сказал в своем ответе на ваш более или менее идентичный вопрос:

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

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

Итак: посмотрите на удаленный файл ~/.bash_history . Включает ли он метки времени на каждой второй строке? Если нет, вы не сохранили информацию о метках времени для команд и не можете ее отобразить.

Вам необходимо установить переменную среды HISTTIMEFORMAT в удаленном местоположении для каждого сеанса, для которого вы хотите записать время. Например, в ~/.bash_profile (см. Раздел "Вызов" в man bash для получения дополнительной информации о том, какие файлы читаются во время запуска).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .