Registro de sesión de shell BASH en host remoto

8

¿Cuál es el mejor método para registrar una sesión de shell BASH en un archivo en la máquina host?

El formato de salida preferido sería equivalente a la configuración de registro de "salida imprimible" de PuTTY, tal como la ve el usuario, incluida la entrada y excluye los datos de caracteres de control ncurses.

Andy
fuente
Curioso por saber qué caparazón estás usando.
dr.pooter

Respuestas:

4

Puede valer la pena mirar programas de auditoría de shell o sistema como rooth o sudosh .

gharper
fuente
rooth resulta ser el más cercano a lo que quiero, gracias.
Andy
1
También puede tener en cuenta acct / psacct (contabilidad BSD) o snoopy. No registran la salida, pero también son menos detallados. Ver: cyberciti.biz/tips/… y sourceforge.net/projects/snoopylogger
Mircea Vutcovici el
La rootshaplicación ahora está en desuso y sudoshparece no mantenerse. Implementamos una envoltura delgada como el papel sudopara permitir sudoque se use como un shell de inicio de sesión con el propósito de iniciar sesión. Ver aquí: github.com/cloudposse/sudosh
Erik Osterman
2

Puede iniciar la pantalla gnu y usar la función de registro. No sé de nada que pueda proporcionarle un registro realmente bueno para aplicaciones ncurses como top.

pantalla de hombre

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
fuente
El resultado de la pantalla es equivalente al script: el manejo de ncurses parece no admitido.
Andy
1

El scriptprograma tomará un registro completo de su sesión de shell. No sé si es equivalente a cualquier cosa PuTTY.

womble
fuente
Gracias, pero no es adecuado ya que paso tiempo en el shell con la parte superior abierta, cuya pantalla registra como: [andy @ 165 ~] $ top ESC [HESC [2JESC (BESC [mtop - 23:34:49 hasta 19 días, 17 : 42, 1 usuario, promedio de carga: 0.11, 0.07, 0.01ESC (BESC [mESC [39; 49mESC [K
Andy
0

No estoy seguro exactamente qué estás tratando de lograr aquí. ¿Es esto para entrenamiento o medicina forense? Si desea algo que produzca buenos archivos de registro legibles, probablemente no tenga suerte. Si está buscando poder reproducir sesiones, ttyrec es lo que busca. Puede ejecutarlo como parte de un script de inicio de sesión para capturar la sesión de un usuario, pero asegúrese de usar 'trap' para evitar que un usuario salga de ttyrec y regrese a un shell.

cosa muy pegajosa
fuente
Auditoría personal y registro de texto sin formato; No se requiere reproducción de sesiones.
Andy
2
La secuencia de comandos es lo más parecido a lo que desea, aunque, como se ha dicho, no puede manejar bien los errores. Usamos un script para registrar todas las sesiones y solo tratamos de ver más allá del desorden que creará ncurses.
goo
Gracias Geoff, parece que podría estar atrapado con el script entonces.
Andy
0

Todos los comandos ingresados ​​se escriben en el archivo .bash_history, normalmente en su hogar. Puede establecer el recuento de líneas que se almacenan mediante la configuración HISTFILESIZE.

Sin embargo, no hay marcas de tiempo ni salida.

Si esto es realmente necesario, haría un contenedor alrededor de bash, copiando stdin y stdout en un archivo y trabajando en eso.

slovon
fuente
0

Puede intentar usar http://xgu.ru/wiki/LiLaLo Está hecho en Rusia, por lo que la documentación también está en ruso, pero Google Translate lo ayudará. Aquí hay un ejemplo de la salida: (fuente: xgu.ru )texto alternativo

TiFFolk
fuente
La traducción es un poco inestable. ¿Esto manejará algo así como un proceso superior interactivo?
dr.pooter
en cuanto a la imagen, no maneja vi, así que no creo que sea superior. Pero el registro es bastante atractivo.
TiFFolk