Pode valer a pena consultar programas de auditoria de sistemas ou shell, como rootsh ou sudosh .
Qual é o melhor método de registrar uma sessão de shell BASH em um arquivo na máquina host?
O formato de saída preferido seria equivalente à configuração de log de "saída imprimível" do PuTTY, conforme visto pelo usuário, inclusive de entrada e excludente de dados de caracteres de controle ncurses.
Você pode iniciar a tela do gnu e usar o recurso de registro. Eu não sei de nada que vai te dar um log realmente bom para ncurses aplicações como top.
man tela
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.
O programa script
terá um log completo da sua sessão do shell. Não sei se é equivalente a qualquer coisa PuTTY.
Você pode tentar usar o link É feito na Rússia, então a documentação também está em russo, mas o google translate irá ajudá-lo. Aqui está um exemplo de saída: texto alternativo http://xgu.ru/w/images/1 /1f/Lilalo-comment.png
Não sei exatamente o que você está tentando alcançar aqui. Isso é para treinamento ou forense? Se você quer algo que produz arquivos de log legíveis, você provavelmente está sem sorte. Se você está olhando para ser capaz de reproduzir sessões, ttyrec é o que você está procurando. Você pode executá-lo como parte de um script de login para capturar a sessão de um usuário, mas certifique-se de usar 'trap' para impedir que um usuário saia do ttyrec e volte para um shell.
Todos os comandos inseridos são gravados no arquivo .bash_history, normalmente em sua casa. Você pode definir a contagem de linhas que são armazenadas através da configuração HISTFILESIZE.
Não há timestamps e saída, no entanto.
Se isso for realmente necessário, eu faria um wrapper em torno do bash, copiando stdin e stdout para um arquivo e trabalhando com isso.