Comment enregistrer et rejouer les sessions de terminal Linux à l'aide de commandes «script» et «scriptreplay»

Comment enregistrer et rejouer les sessions de terminal Linux à l'aide de commandes «script» et «scriptreplay»

Dans ce guide, nous allons voir comment utiliser un scénario et scriptre Commandes de Linux qui peuvent vous aider à enregistrer les commandes et leur sortie imprimée sur votre terminal lors d'une session donnée.

Enregistrer et rejouer les commandes du terminal Linux

La commande historique est un excellent utilitaire de ligne de commande qui aide les utilisateurs à stocker la commande précédente utilisée, bien qu'elle ne stocke pas la sortie d'une commande.

Ne manquez pas: Exposition.IO - un outil d'enregistrement de terminal Linux

Ne manquez pas: 8 meilleurs enregistreurs d'écran de bureau pour Linux

Par conséquent, la scénario La commande est utile pour vous fournir une fonctionnalité puissante qui vous aide à enregistrer tout ce qui est imprimé sur votre terminal à un fichier journal. Vous pouvez ensuite vous référer à ce fichier plus tard au cas où vous souhaitez afficher la sortie d'une commande dans l'historique de la fichier journal.

Vous pouvez également rejouer les commandes que vous avez enregistrées scriptre Commande en utilisant une information de synchronisation.

Comment enregistrer le terminal Linux à l'aide de la commande de script

Le scénario Commande stocke les activités de terminal dans un fichier journal qui peut être nommé par un utilisateur, lorsqu'un nom n'est pas fourni par un utilisateur, le nom de fichier par défaut, manuscrit est utilisé.

Syntaxe de base de la commande de script
# script [options] - -timing = timing_file log_filename 

Pour commencer l'enregistrement du terminal Linux, tapez scénario et ajouter le journal nom de fichier comme montré.

[Protégé par e-mail] ~ $ Script History_log.SMS Script démarré, le fichier est history_log.SMS 

Arrêter scénario, taper sortie et presser [Entrer].

[Protégé par e-mail] ~ $ sortie Script effectué, le fichier est history_log.SMS 

Si le script ne peut pas écrire dans le fichier journal nommé, il affiche une erreur.

Par exemple, dans la sortie ci-dessous, les autorisations du fichier manuscrit n'autorise pas la lecture, l'écriture et l'exécution du fichier pas par aucun utilisateur ou groupe. Lorsque vous exécutez la commande de script sans nom de fichier journal, il tente d'écrire dans le fichier par défaut, manuscrit Affichant donc une erreur.

[Protégé par e-mail] ~ $ LS -L TypeScript --------- 1 Ubuntu Ubuntu 144 15 sept [Protégé par e-mail] ~ $ scénario Script: Ouver Terminé 

Exemples d'utilisation de la commande Script

J'ai nommé mon fichier journal scénario.enregistrer Dans l'exemple ci-dessous, vous pouvez donner à votre fichier un nom différent.

[Protégé par e-mail] ~ $ script script script.enregistrer 

Essayez maintenant d'exécuter quelques commandes pour autoriser le script à enregistrer les commandes exécutées sur le terminal.

[Protégé par e-mail] ~ $ cal Septembre 2015 Su Mo Tu WE TH FR SA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 [Protégé par e-mail] ~ $ w 14:49:40 UP 4:06, 2 utilisateurs, moyenne de chargement: 1.37, 1.56, 1.62 utilisateur tty de [e-mail protégé] inactif jcpu pcpu ce que tecmint tty8: 0 10:45 4: 06m 7:40 0.36s x-session-manager tecmint pts / 5: 0 13:42 4.00S 0.07S 0.Script de script 00S.enregistrer [Protégé par e-mail] ~ $ durée de la baisse 14:49:43 Up 4:06, 2 utilisateurs, moyenne de chargement: 1.37, 1.56, 1.62 [Protégé par e-mail] ~ $ qui suis je Tecmint [Protégé par e-mail] ~ $ Echo 'Utilisation du script' Utilisation du script [Protégé par e-mail] ~ $ sortie Script de sortie fait, le fichier est le script.enregistrer 

Essayez maintenant d'afficher le fichier journal 'scénario.enregistrer'Pour toutes les commandes enregistrées, pendant que vous affichez le journal, vous réalisez que le script stocke également les flux de ligne et les espaces arrière.

[Protégé par e-mail] ~ $ VI Script.enregistrer 
Échantillon de sortie
^ [[0m ^ [[255d ^ [[01; [Email protégé] ^ [[01; 34m ~ $ ^ [[00m Cal ^ m septembre 2015 ^ m su mo tu we th fr sa ^ m 1 2 3 4 5 ^ M 6 7 8 9 10 11 12 ^ m 13 14 15 ^ [[7M16 ^ [[27M 17 18 19 ^ m 20 21 22 23 24 25 26 ^ m 27 28 29 30 ^ m ^ m ^ [[01; Protégé par e-mail] ^ [[01; 34m ~ $ ^ [[00m w ^ m 14:49:40 Up 4:06, 2 utilisateurs, chargement de chargement: 1.37, 1.56, 1.62 ^ m utilisateur tty de [e-mail protégé] inactif jcpu pcpu ce ^ m tecmint tty8: 0 10:45 4: 06m 7:40 0.36s x-session-manager ^ m tecmint pts / 5: 0 13:42 4.00S 0.07S 0.Script de script 00S.log ^ m ^ [[01; [e-mail protégé] ^ [[01; 34m ~ $ ^ [[00m de disponibilité ^ m 14:49:43 Up 4:06, 2 utilisateurs, chargement de chargement: 1.37, 1.56, 1.62 ^ M ^ [[01; [Courriel protégé] ^ [[01; 34m ~ $ ^ [[00m Whoami ^ m Tecmint ^ m ^ [[01; [e-mail protégé] ^ [[01; 34m ~ $ ^ [[[[[[[ 00m echo "^ Hu '^ hs' ^ hi '^ hn' ^ hg '^ H' ^ Hs '^ hc' ^ Hr '^ hi' ^ hp '^ ht' ^ H ^ M en utilisant le script ^ m ^ [[[[ 01; [e-mail protégé] ^ [[01; 34m ~ $ ^ [[00m Exit ^ m Script ^ m Script effectué le mercredi 16 septembre 2015 02:49:59 PM IST ~ 

Vous pouvez utiliser le -un Option pour ajouter le fichier journal ou TypeScript, conservant le contenu précédent.

[Protégé par e-mail] ~ $ script -a script.enregistrer Script démarré, le fichier est le script.enregistrer [Protégé par e-mail] ~ $ date Mer sept. 14:59:36 IST 2015 [Protégé par e-mail] ~ $ PWD / Home / Tecmint [Protégé par e-mail] ~ $ où est le script script: / usr / bin / script / usr / bin / x11 / script / usr / share / man / man1 / script.1.gz [Protégé par e-mail] ~ $ Whatis Script Script (1) - Faire de typeScript de la session terminale 

Afficher le contenu du script, connectez-vous après avoir utilisé -un Option pour l'ajouter.

[Protégé par e-mail] ~ $ VI Script.enregistrer 
Échantillon de sortie
^ [[0m ^ [[255d ^ [[01; [e-mail protégé] ^ [[01; 34m ~ $ ^ [[00m Date ^ m mer sept 16 14:59:36 Ist 2015 ^ M ^ [[01; Courriel protégé] ^ [[01; 34m ~ $ ^ [[00m pwd ^ m / home / tecmint ^ m ^ [[01; [e-mail protégé] ^ [[01; 34m ~ $ ^ [[00m whre ^ h ^ [ [K ^ H ^ [[Kereis Script ^ m Script: / usr / bin / script / usr / bin / x11 / script / usr / share / man / man1 / script.1.gz ^ m ^ [[01; [e-mail protégé] ^ [[01; 34m ~ $ ^ [[00m Whatis Script ^ m Script (1) - Faire de typescript de la session terminale ^ m ^ [[01; [Courriel protégé] ^ [[01; 34m ~ $ ^ [[00m vi s ^ h ^ [[k ^ h ^ [[k ^ h ^ [[k ^ h ^ [[kexit ^ m exit ^ m 

Pour enregistrer les résultats d'une seule commande autre qu'une session de shell interactive, utilisez le -c option.

[Protégé par e-mail] ~ $ script -c script 'hostname'.enregistrer Script démarré, le fichier est le script.journal.com script comte, le fichier est le script.enregistrer 

Si vous voulez que le script s'exécute en mode silencieux, vous pouvez utiliser le -q option. Vous ne verrez pas de message qui montre que le script commence ou sort.

[Protégé par e-mail] ~ $ script -c 'who' -q script.enregistrer Tecmint Tty8 2015-09-16 10:45 (: 0) Tecmint PTS / 5 2015-09-16 13:42 (: 0) 

Pour définir des informations de synchronisation sur une erreur standard ou un fichier utilisez le -Horaire option. Les informations de synchronisation sont utiles lorsque vous souhaitez rediffuser la sortie stockée dans le log_file.

Laissons le script et exécutons les commandes suivantes w, durée de la baisse et cal à enregistrer.

[Protégé par e-mail] ~ $ script --timing = temps.script txt.enregistrer Script démarré, le fichier est le script.enregistrer [Protégé par e-mail] ~ $ w 15:09:31 Up 4:26, 2 utilisateurs, moyenne de chargement: 1.38, 1.39, 1.47 utilisateur tty de [e-mail protégé] JCPU inactif pcpu ce que tecmint tty8: 0 10:45 4: 26m 8:15 0.38S X-session-manager tecmint pts / 5: 0 13:42 3.00S 0.09S 0.Script 00S --Timing = Time.script txt.enregistrer [Protégé par e-mail] ~ $ durée de la baisse 15:09:36 Up 4:26, 2 utilisateurs, moyenne de chargement: 1.43, 1.40, 1.48 [Protégé par e-mail] ~ $ cal Septembre 2015 Su Mo Tu WE TH FR SA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 

Vous pouvez voir le scénario.enregistrer et temps.SMS fichier pour la commande de synchronisation ci-dessus.

[Protégé par e-mail] ~ $ VI Script.enregistrer 
Échantillon de sortie
^ [[0m ^ [[255d ^ [[01; [e-mail protégé] ^ [[01; 34m ~ $ ^ [[00m w ^ m 15:12:05 Up 4:28, 2 utilisateurs, chargement de chargement: 1.31, 1.37, 1.45 ^ m utilisateur tty de [e-mail protégé] inactif jcpu pcpu ce ^ m tecmint tty8: 0 10:45 4: 28m 8:20 0.38S x-session-manager ^ m tecmint pts / 5: 0 13:42 5.00S 0.09S 0.Script 00S --Timing = Time.script txt.log ^ m ^ [[01; [e-mail protégé] ^ [[01; 34m ~ $ ^ [[00m de disponibilité ^ m 15:12:07 Up 4:28, 2 utilisateurs, chargement de chargement: 1.29, 1.36, 1.45 ^ m ^ [[01; [e-mail protégé] ^ [[01; 34m ~ $ ^ [[00m Cal ^ m septembre 2015 ^ m su mo tu we th fr sa ^ m 1 2 3 4 5 ^ m 6 7 8 9 10 11 12 ^ m 13 14 15 ^ [[7M16 ^ [[27M 17 18 19 ^ m 20 21 22 23 24 25 25 26 ^ m 27 28 29 30 ^ m ^ m 

Voir maintenant temps.SMS déposer.

[Protégé par e-mail] ~ $ VI Time.SMS 
Échantillon de sortie
0.259669 306 0.037680 829 0.000006 2 0.000002 100 0.000002 2 0.000002 102 0.000019 202 0.000004 2 0.000002 102 0.000015 100 0.000002 2 0.000003 2 0.000002 99 0.000011 2 0.000003 82… 

Le temps.SMS Le fichier a deux colonnes, la première colonne montre combien de temps s'est écoulé depuis le dernier écran et la deuxième colonne, affiche le nombre de caractères qui ont été affichés cette fois-ci.

Utilisez la page Man et -aider Pour rechercher plus d'options et aider à utiliser l'utilitaire de ligne de commande de script.

Utilisation de Scriptreplay pour rejouer les scripts à l'aide d'informations de synchronisation

Le scriptre La commande aide à rejouer les informations dans votre fichier journal Enregistré par le scénario commande.

Les informations de synchronisation sont définies par le -timing = fichier Option utilisée avec le scénario commande et déposer Dans ce cas, c'est déposer.SMS qui a été utilisé avec la commande de script .

N'oubliez pas que vous devez spécifier le fichier journal vous avez utilisé avec la commande de script.

Laissez maintenant rejouer les trois dernières commandes w, durée de la baisse et cal que nous avions couru comme suit.

[Protégé par e-mail] ~ $ scriptreplay --timing = time.script txt.enregistrer 
Rejouer les dernières commandes exécutées dans Linux

Quand le fichier journal Replayés à 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 lors de l'enregistrement.

Résumé

Ces deux commandes, scénario et scriptre Facile à utiliser et à aider beaucoup lorsque vous devez exécuter le même lot de commandes plusieurs fois. Ils aident beaucoup à gérer des serveurs qui n'ont qu'une interface de ligne de commande pour l'interaction avec votre système. J'espère que ce guide a été utile et que si vous avez quelque chose à ajouter ou à faire face à un défi pendant les utiliser, n'hésitez pas à publier un commentaire.