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.
Réponses:
Il pourrait être utile de regarder des programmes d'audit shell ou système comme rootsh ou sudosh .
la source
rootsh
application est désormais obsolète etsudosh
semble non entretenue. Nous avons implémenté un wrapper fin comme du papiersudo
pour permettresudo
d'être utilisé comme shell de connexion à des fins de journalisation de session. Voir ici: github.com/cloudposse/sudoshVous 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
la source
TTYrec est probablement la solution la plus simple. Vous pouvez utiliser l'original:
http://0xcc.net/ttyrec/index.html.en
Ou lancez le vôtre:
http://en.wikipedia.org/wiki/Ttyrec
Ou, vous pourriez obtenir toute la vieille école et | toutes vos commandes sur tee command.timestamp.tee
la source
Le
script
programme prendra un journal complet de votre session shell. Ne sais pas si c'est équivalent à n'importe quel truc PuTTY.la source
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.
la source
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.
la source
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 )
la source