Записывать команды ssh на клиенте

Как мне записать все выполненные команды через SSH на клиентском компьютере?

Допустим, я подключаюсь к example.com и набираю следующие команды:

$ ls
$ touch hello
$ mkdir world
$ mv hello world/

Я хочу, чтобы мой клиент должен иметь все набранные команды в файле, подобном этому:

ls
touch hello
mkdir world
mv hello world/

Моя цель - если я сделаю ошибку и сломаю сервер, я все равно могу найти, какая команда идет не так. Я не могу использовать ~ / .bash_logout для сохранения команд после отключения или ~ / .bash_history , потому что это на стороне сервера. Я не нашел ничего подходящего для ~ / .ssh / config , поэтому я спрашиваю здесь.

Есть идеи?

РЕДАКТИРОВАТЬ:

Для большей ясности, если я подключаюсь из с машины A на машину B, я хочу иметь файл истории на машине A.

0
задан 12 July 2018 в 12:58
3 ответа

В большинстве случаев это уже будет в вашем файле истории, например ~ / .bash_history

0
ответ дан 5 December 2019 в 05:39

вы можете найти все команды, которые вы ввели, используя историю или cat ~ /. bash_history или даже если вы хотите перенаправить вывод этой команды в файл, который вы можете написать cat ~ / .bash_history> имя вашего файла ваше имя файла - это файл, историю которого вы хотите сохранить в этом файле или если вы хотите просмотреть последние n команд, которые вы набрали из истории, вы можете ввести history | tail -n, и вы можете перенаправить их в файл, набрав history | tail -n> имя_вашего_файла

0
ответ дан 5 December 2019 в 05:39

Это можно сделать, добавив следующую строку в файл / etc / bashrc

PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug "$(whoami) [$$]: $(history 1 | sed "s/^[ ][0-9]+[ ]//" ) [$RETRN_VAL]"'

, вы также должны создать файл commands.conf внутри каталог /etc/rsyslog.d/ и содержимое файла должно быть таким:

local6.*    /var/log/commands.log

Затем перезапустите службу rsyslog Весь журнал будет записан в /var/log/commands.log

0
ответ дан 5 December 2019 в 05:39

Теги

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