Journalisation de session shell BASH sur un hôte distant

8

Quelle est la meilleure méthode pour consigner une session shell BASH dans un fichier sur la machine hôte?

Le format de sortie préféré serait équivalent au paramètre de journal de "sortie imprimable" de PuTTY, tel que vu par l'utilisateur, y compris l'entrée et l'exlusion des données de caractères de contrôle ncurses.

Andy
la source
Curieux de savoir quel shell vous utilisez.
dr.pooter

Réponses:

4

Il pourrait être utile de regarder des programmes d'audit shell ou système comme rootsh ou sudosh .

gharper
la source
rootsh s'avère être le plus proche de ce que je veux, merci.
Andy
1
Vous pouvez également prendre en compte acct / psacct (comptabilité BSD) ou snoopy. Ils n'enregistrent pas la sortie, mais ils sont également moins verbeux. Voir: cyberciti.biz/tips/… et sourceforge.net/projects/snoopylogger
Mircea Vutcovici
L' rootshapplication est désormais obsolète et sudoshsemble non entretenue. Nous avons implémenté un wrapper fin comme du papier sudopour permettre sudod'être utilisé comme shell de connexion à des fins de journalisation de session. Voir ici: github.com/cloudposse/sudosh
Erik Osterman
2

Vous pouvez démarrer l' écran gnu et utiliser la fonction de journal. Je ne connais rien qui puisse vous donner un très bon journal pour les applications ncurses comme top.

écran homme

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
la source
La sortie de l'écran est équivalente au script - la gestion de ncurses semble non prise en charge.
Andy
1

Le scriptprogramme prendra un journal complet de votre session shell. Ne sais pas si c'est équivalent à n'importe quel truc PuTTY.

womble
la source
Merci, mais cela ne convient pas, car je passe du temps sur le shell avec le dessus ouvert, qui s'affiche comme: [andy @ 165 ~] $ top ESC [HESC [2JESC (BESC [mtop - 23:34:49 up 19 jours, 17 : 42, 1 utilisateur, charge moyenne: 0.11, 0.07, 0.01ESC (BESC [mESC [39; 49mESC [K
Andy
0

Je ne sais pas exactement ce que vous essayez de réaliser ici. Est-ce pour la formation ou la criminalistique? Si vous voulez quelque chose qui produit de beaux fichiers journaux lisibles, vous n'avez probablement pas de chance. Si vous cherchez à pouvoir lire des sessions, ttyrec est ce que vous recherchez. Vous pouvez l'exécuter dans le cadre d'un script de connexion pour capturer la session d'un utilisateur, mais assurez-vous que vous utilisez «trap» pour empêcher un utilisateur de quitter ttyrec et de revenir à un shell.

goo
la source
Audit personnel et journalisation en texte brut; la lecture des sessions n'est pas requise.
Andy
2
le script est la chose la plus proche de ce que vous voulez, bien que, comme indiqué, il ne puisse pas bien gérer les ncurses. Nous utilisons un script pour enregistrer toutes les sessions et essayons simplement de voir au-delà du gâchis que ncurses fera.
goo
Merci Geoff, on dirait que je pourrais être coincé avec le script alors.
Andy
0

Toutes les commandes entrées sont écrites dans un fichier .bash_history, normalement dans votre maison. Vous pouvez définir le nombre de lignes stockées via le paramètre HISTFILESIZE.

Il n'y a cependant pas d'horodatage et de sortie.

Si cela est vraiment nécessaire, je ferais un wrapper autour de bash, copiant stdin et stdout dans un fichier et travaillerais sur cela.

slovon
la source
0

Vous pouvez essayer d'utiliser http://xgu.ru/wiki/LiLaLo Il est fabriqué en Russie, donc la documentation est également en russe, mais Google Translate vous aidera. Voici un exemple de sortie: (source: xgu.ru )texte alternatif

TiFFolk
la source
La traduction est un peu bancale. Est-ce que cela va gérer quelque chose comme un processus supérieur interactif?
dr.pooter
quant à l'image, elle ne gère pas vi, donc pas de top je pense. Mais la journalisation est assez attrayante.
TiFFolk