web-dev-qa-db-fra.com

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

Comment puis-je conserver des journaux de tout le travail effectué via un terminal? Par exemple, je veux un enregistrement de tout le travail effectué sur la base de données via un terminal.

44
Ankit

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

script screen.log

Maintenant, jusqu'à ce que vous arrêtiez le script, toutes les entrées et sorties du 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 souhaitez le rediriger, utilisez un chemin absolu tel que ~/screen.log. Cela fera exactement ce que vous recherchez.

Source: Guide Ubuntu - Comment consigner les commandes de terminal

64
xlukasx

Vous voudrez peut-être essayer Asciinema . En plus de faire un enregistrement, vous avez la possibilité de le partager et d'intégrer le lecteur dans votre blog, article ou conférence.

10
sickill

J'ai un meilleur moyen d'utiliser syslog pour consigner chaque commande Shell. Cela peut varier en fonction de la distribution Linux, mais la méthode reste la même.

Vous devez suivre quelques étapes:

Étape 1 (Créer un service Syslog)

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

local6.*    /var/log/commands.log

Étape # 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]"'

Ste # 3 (Redémarrez 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] 
 7 déc. 22 22:13:09 validationdb2 mahasan: root @ export [13291]: ls -lh [0] 
 7 déc. 22 22:13:27 validationdb2 mahasan: root @ export [13291]: commande de test du toucher [0] 
6
Mansur Ali