Используя команду history с помощью ssh и получать выходные данные с отметками времени

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

ssh user@ip 'export HISTFILE=~/.bash_history; set -o history; history' 

Я получил все команды, но я не получаю временные штампы с этим, что, как я полагаю, ожидается.

Когда я впервые вхожу в систему и затем использую команду history, я получаю все данные, включая дату и время. Я хотел бы получить все подробности, когда я использую команду history с ssh. Как мне это сделать? OH yeah, и, если возможно, я хотел бы получить историю, не требуя экспорта HISTFILE. (ЕСЛИ ВОЗМОЖНО) Установка пакетов не является вариантом.

2 Solutions collect form web for “Используя команду history с помощью ssh и получать выходные данные с отметками времени”

Две вещи:

  1. Вам также необходимо экспортировать, например

     HISTTIMEFORMAT='%F %T ' 

    Для установки времени истории команды отображения.

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

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

Если вы знаете, что оболочка – bash а файл истории – .bash_history достаточно простой выборки.

scp user@ip:.bash_history .

Для данных времени,

  • Файл .bash_history будет содержать информацию о времени из данных истории всех сеансов, которые были запущены с настроенным HISTTIMEFORMAT
  • Я думаю, что обновление истории будет содержать метки времени для всего сеанса с конфигурацией HISTTIMEFORMAT в любое время внутри него
  • Это подводит нас к небольшому ограничению
    • Если у вас есть bash profile для этих удаленных пользователей с
      export HISTTIMEFORMAT='some format' , вам хорошо, просто потянув файл .bash_history
    • Else, запуск команды удаленной истории в любой форме не даст вам данных о времени – просто потому, что он не сохраняется (в .bash_history ) в первую очередь; Он теряется в конце каждого сеанса и сохраняется только список команд

Надеюсь, что последний пункт уточняет возможность получения данных времени.
Хорошей новостью является то, что если вы видите данные времени для прошлых сеансов при входе в систему, она настроена и вам не нужны какие-либо изменения. Если нет, это просто вопрос вставки export в используемый bash profile – никаких установок не требуется.

Ps: Я полагаю, что если ваш вопрос сосредоточен на оболочке bash , вы добавляете это как тег.

  • Ls -la symbolics ... что означает этот последний символ?
  • Несколько параметров для сценария bash
  • Могу ли я узнать, есть ли у меня сеанс scp в моем .bashrc?
  • Linux bash iterating и Break
  • Как вы находите родительский процесс зомби-процесса?
  • Извлечение файла tar.gz возвращает: «Это не похоже на архив tar».
  • Как сбросить переменную $ PATH в Mac OS X?
  • Перенаправление команд командной оболочки в другую консольную оболочку
  • Получение имени предыдущего процесса
  • В чем разница между командами Linux (Ubuntu) и Mac?
  • Альтернативы cd / ls для навигации по командной строке?
  • Давайте будем гением компьютера.