5

Мне нужно перечислить все команды, выполняемые в "сеансе SSH". Я использую несколько сеансов SSH для входа на удаленные серверы. Поэтому, когда я выхожу из одного сеанса, мне нужно получить команды, выполняемые в этом сеансе.

Есть ли вариант для этого?

3 ответа3

6

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

Если вы редактируете ~/.bash_profile, чтобы включить следующую строку:

export HISTTIMEFORMAT="%h/%d -- %H:%M:%S "

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

Когда bash завершает работу, он запускает ваш скрипт ~/.bash_logut . Если вы сделаете последнюю строку этого скрипта:

history

последнее, что вы заметите при закрытии соединения, - это ваша история - к сожалению, не только с текущего сеанса, но и временные метки должны помочь вам определить, какие команды были из текущего сеанса, а какие - старые ,

Если вы не против потерять историю на удаленных машинах между сеансами, вы можете добавить

unset HISTFILE

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

0

Используя PuTTY (или другие ssh-клиенты), вы можете настроить его на "сохранение" всей информации о сеансе.

В замазке:

Session --> Login --> Session Login --> All session output

Другим вариантом может быть выполнение команды

# history >> history.log

Перед выходом из сессии ssh и загрузкой файла history.log

Это будет список последних выполненных команд.

Вы даже можете дать истории знать, сколько команд запомнить

# vi ~/.bash_profile
HISTSIZE=450
HISTFILESIZE=450

надеюсь, это поможет

-1

2-е предложение Гонсало Мурильо использовать команду истории для захвата только того, что вы ввели (не вывод команды), будет работать.

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

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