Sessão de shell BASH registrando no host remoto

8

Qual é o melhor método para registrar uma sessão do 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 visualizada pelo usuário, incluindo entradas e exclusões de dados de caracteres de controle ncurses.

Andy
fonte
Curioso para saber qual shell você está usando.
dr.pooter

Respostas:

4

Pode valer a pena olhar para programas shell ou de auditoria do sistema como rootsh ou sudosh .

gharper
fonte
rootsh acaba por ser o mais próximo do que eu quero, obrigado.
Andy
11
Você também pode levar em consideração acct / psacct (contabilidade BSD) ou snoopy. Eles não registram a saída, mas também são menos detalhados. Veja: cyberciti.biz/tips/… e sourceforge.net/projects/snoopylogger
Mircea Vutcovici
O rootshaplicativo agora está obsoleto e sudoshparece não mantido. Implementamos um invólucro de papel fino sudopara permitir o sudouso como um shell de login para fins de registro de sessão. Veja aqui: github.com/cloudposse/sudosh
Erik Osterman
2

Você pode iniciar a tela do gnu e usar o recurso de log. Eu não sei de nada que está indo dar-lhe um bom registro para ncurses aplicativos como o topo.

tela do homem

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.
Zoredache
fonte
A saída da tela é equivalente ao script - o tratamento de ncurses parece não ser suportado.
Andy
1

O scriptprograma fará um log completo da sua sessão do shell. Não sei se é equivalente a qualquer coisa PuTTY.

mulher
fonte
Obrigado, mas não é adequado, pois passo o tempo no shell com a parte superior aberta, cuja tela registra como: [andy @ 165 ~] $ top ESC [HESC [2JESC (BESC [mtop - 23:34:49 até 19 dias, 17 : 42, 1 usuário, média de carga: 0,11, 0,07, 0,01ESC (BESC [mESC [39; 49mESC [K
Andy
0

Não sei exatamente o que você está tentando alcançar aqui. Isso é para treinamento ou forense? Se você deseja algo que produz bons arquivos de log legíveis, provavelmente não terá sorte. Se você deseja reproduzir sessões, ttyrec é o que você procura. Você pode executá-lo como parte de um script de logon 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 ao shell.

goo
fonte
Auditoria pessoal e registro de texto sem formatação; a reprodução de sessões não é necessária.
Andy
2
O script é a coisa mais próxima do que você deseja, embora, como declarado, não possa lidar bem com as maldições. Usamos o script para registrar todas as sessões e apenas tentamos ver além da bagunça que os ncurses farão.
goo
Obrigado Geoff, parece que eu poderia estar preso com o script então.
Andy
0

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.

No entanto, não existem registros de data e hora.

Se isso for realmente necessário, eu faria um wrapper em torno do bash, copiando stdin e stdout para um arquivo e resolvendo isso.

Slovon
fonte
0

Você pode tentar usar o http://xgu.ru/wiki/LiLaLo. É fabricado na Rússia, portanto a documentação também está em russo, mas o Google Tradutor o ajudará. Aqui está um exemplo da saída: (fonte: xgu.ru )texto alternativo

TiFFolk
fonte
A tradução é um pouco instável. Isso manipulará algo como um processo superior interativo.
dr.pooter
quanto à imagem, ele não lida com vi, então não acho que top. Mas o registro é bastante atraente.
TiFFolk