Comment enregistrer et rejouer des sessions de terminal sous Linux
Dans ce guide, nous allons voir comment utiliser un script et des commandes scriptreplay sous Linux qui peuvent vous aider à enregistrer des commandes et leur sortie imprimées sur votre terminal au cours d’une session donnée.
La commande history est un excellent utilitaire de ligne de commande qui aide les utilisateurs à stocker les commandes précédentes utilisées, bien qu’elle ne stocke pas la sortie d’une commande.
Par conséquent, la commande script est utile pour vous fournir une fonctionnalité puissante qui vous aide à enregistrer tout ce qui est imprimé sur votre terminal dans un log_file.
Vous pouvez ensuite vous référer à ce fichier ultérieurement si vous souhaitez afficher la sortie d’une commande dans l’historique à partir de l’log_file.
Vous pouvez également relire les commandes que vous avez enregistrées à l’aide de la commande scriptreplay à l’aide des informations de synchronisation.
Comment enregistrer un terminal sous Linux ?
Si vous souhaitez créer un typescript (enregistrement d’une session de terminal) sous Linux, vous pouvez utiliser la commande script qui démarre une nouvelle session shell et enregistre tout ce qui est affiché sur le terminal, y compris l’entrée et la sortie, dans le nom de fichier spécifié.
script my_terminal_session.txt
Après avoir exécuté la commande de script, vous verrez l’invite du terminal, où vous pouvez exécuter diverses commandes et votre session de terminal sera enregistrée dans le fichier « my_terminal_session.txt ».
Essayez maintenant d’exécuter quelques commandes pour permettre au script d’enregistrer les commandes exécutées sur le terminal.
cal
w
uptime
whoami
pwd
Pour arrêter l’enregistrement, il suffit de taper exit ou d’appuyer sur Ctrl+D.
exit
Essayez maintenant d’afficher le fichier journal 'my_terminal_session.txt' pour toutes les commandes enregistrées, pendant que vous consultez le journal, vous vous rendez compte que le script stocke également les sauts de ligne et les retours arrière.
vi my_terminal_session.txt
Vous pouvez utiliser l’option -a pour ajouter le fichier journal ou le tapuscrit, en conservant le contenu précédent.
script -a my_terminal_session.txt
vi my_terminal_session.txt
Pour consigner les résultats d’une seule commande autre qu’une session shell interactive, utilisez l’option -c.
script -c 'hostname' script.log
Si vous souhaitez que le script s’exécute en mode silencieux, vous pouvez utiliser l’option -q. Vous ne verrez pas de message indiquant que le script démarre ou se termine.
script -c 'who' -q script.log
Pour définir les informations de synchronisation sur l’erreur standard ou un fichier, utilisez l’option --timing. Les informations de minutage sont utiles lorsque vous souhaitez réafficher la sortie stockée dans le log_file.
Commençons le script et exécutons les commandes suivantes w, uptime et cal à enregistrer.
script --timing=time.txt script.log
Vous pouvez afficher le fichier script.log et time.txt pour la commande de minutage ci-dessus.
vi script.log
Affichez maintenant le fichier time.txt.
vi time.txt
Le fichier time.txt comporte deux colonnes, la première colonne indique le temps écoulé depuis le dernier affichage et la deuxième colonne indique le nombre de caractères qui ont été affichés cette fois-ci.
Utilisez la page de manuel et --help pour rechercher plus d’options et obtenir de l’aide sur l’utilisation de l’utilitaire de ligne de commande de script.
Comment rejouer une session de terminal enregistrée sous Linux ?
La commande scriptreplay permet de rejouer les informations de votre log_file enregistrées par la commande script.
Les informations de minutage sont définies par l’option -timing=file utilisée avec la commande script et le fichier dans ce cas est script.log qui a été utilisé avec la commande script.
scriptreplay --timing=time.txt script.log
Lorsque le log_file est relu à l’aide des informations de synchronisation, les commandes enregistrées sont exécutées et leur sortie s’affiche en même temps que la sortie d’origine a été affichée pendant l’enregistrement.
Résumé
Ces deux commandes, script et scriptreplay, sont faciles à utiliser et aident beaucoup lorsque vous devez exécuter plusieurs fois le même lot de commandes.
Ils aident beaucoup à gérer les serveurs qui n’ont qu’une interface de ligne de commande pour l’interaction avec votre système. J’espère que ce guide vous a été utile et si vous avez quelque chose à ajouter ou si vous rencontrez un défi lors de leur utilisation, n’hésitez pas à poster un commentaire.


