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.
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
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.
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]