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