56 votes

Comment puis-je enregistrer toutes les entrées et sorties dans une session de terminal ?

Comment puis-je conserver les journaux de tous les travaux effectués via le terminal ? Par exemple, je veux un enregistrement de tous les travaux effectués sur la base de données via le terminal.

85voto

xlukasx Points 1267

Lorsque vous êtes prêt à commencer à enregistrer un fichier journal, tapez :

script screen.log

Maintenant, jusqu'à ce que vous arrêtiez le script, toutes les entrées et sorties dans le Terminal seront stockées dans screen.log. Lorsque vous avez terminé, tapez simplement :

exit

Votre fichier screen.log sera stocké dans le répertoire local. Si vous voulez le rediriger, utilisez un nom de chemin absolu tel que ~/screen.log . Cela fera exactement ce que vous recherchez.

Source : Guide Ubuntu - Comment enregistrer les commandes de terminal

12voto

sickill Points 389

Vous pouvez essayer Asciinema . En plus de réaliser un enregistrement, vous avez la possibilité de le partager et d'intégrer le lecteur sur votre blog, dans un article ou lors d'une conférence.

7voto

Mansur Ul Hasan Points 271

J'ai une meilleure façon d'utiliser syslog pour enregistrer chaque commande Shell cela peut varier selon la distribution linux mais la méthode restera la même.

Vous devez suivre quelques étapes :

Étape # 1 (Créer le service Syslog)

# vim /etc/rsyslog.d/bash.conf

local6.*    /var/log/commands.log

Etape # 2 (Ouvrez bashrc et entrez la commande ci-dessous)

# vim /root/.bashrc

# Enable CLI Logging by Mansur 08-12-2016 
whoami="$(whoami)@$(echo $SSH_CONNECTION | awk '{print $1}')"export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug "$whoami [$$]: $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//" ) [$RETRN_VAL]"'

Etape 3 (Redémarrer le service Syslog)

# /etc/init.d/rsyslog

Voici un exemple de journal :

Dec  7 22:13:00 validationdb2 mahasan: root@export \[13291\]: tail -f /var/log/mysql/mysql.log \[0\]
Dec  7 22:13:09 validationdb2 mahasan: root@export \[13291\]: ls -lh \[0\]
Dec  7 22:13:27 validationdb2 mahasan: root@export \[13291\]: touch test command  \[0\]

1voto

strang1ato Points 11

nhi résoudra parfaitement votre problème. Cet outil capture automatiquement toutes les informations potentiellement utiles sur chaque commande exécutée (ainsi que sa sortie).

Avec nhi vous pouvez facilement récupérer n'importe quelle session Shell (ou sortie de terminal) dans son intégralité, ou seulement les commandes qui vous intéressent, en utilisant un mécanisme d'interrogation avancé fourni par nhi .

Note :

Je suis le créateur de cet outil. Si vous avez des questions, n'hésitez pas à les poser.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X