Назад | Перейти на главную страницу

Ведение журнала сеанса оболочки BASH на удаленном хосте

Каков наилучший метод записи сеанса оболочки BASH в файл на хост-машине?

Предпочтительный выходной формат будет эквивалентен настройке журнала PuTTY «вывод для печати», если смотреть пользователю, включая ввод и исключая данные управляющих символов ncurses.

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

TTYrec - наверное, самое простое решение. Вы можете использовать оригинал:

http://0xcc.net/ttyrec/index.html.en

Или сверните свой:

http://en.wikipedia.org/wiki/Ttyrec

Или вы могли бы получить всю старую школу и | все ваши команды в tee command.timestamp.tee

Вы могли бы начать gnu экран и используйте функцию журнала. Я не знаю ничего, что могло бы дать вам действительно хороший журнал для ncurses такие приложения как топ.

человек экран

log [on|off]

Start/stop writing output of the current window to a file "screenlog.n"
in the window's default directory, where n is the number of the current
window. This filename can be changed with the `logfile' command. ...

logfile filename
logfile flush secs

Defines the name the log files will get. The default is "screenlog.%n".
The  second  form changes the number of seconds screen will wait before
flushing the logfile buffer to the file-system. The default value is 10
seconds.

В script программа будет вести полный журнал сеанса вашей оболочки. Не знаю, эквивалентен ли это какой-либо вещи PuTTY.

Я не совсем уверен, чего вы здесь пытаетесь достичь. Это для обучения или для криминалистики? Если вам нужно что-то, что создает хорошо читаемые файлы журнала, вам, вероятно, не повезло. Если вы хотите иметь возможность воспроизводить сеансы, ttyrec - это то, что вам нужно. Вы можете запустить его как часть сценария входа в систему для захвата сеанса пользователя, но убедитесь, что вы используете «ловушку», чтобы помешать пользователю выйти из ttyrec и вернуться в оболочку.

Все введенные команды записываются в файл .bash_history, как правило, у вас дома. Вы можете установить количество сохраняемых строк с помощью параметра HISTFILESIZE.

Однако здесь нет временных меток и вывода.

Если это действительно необходимо, я бы сделал оболочку вокруг bash, скопировал stdin и stdout в файл и работал над этим.

Вы можете попробовать использовать http://xgu.ru/wiki/LiLaLo Он сделан в России, поэтому документация тоже на русском, но Google Translate вам поможет. Вот пример вывода:
(источник: xgu.ru)