GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So zeichnen Sie Linux-Terminalsitzungen mit den Befehlen „script“ und „scriptreplay“ auf und geben sie wieder

In dieser Anleitung werden wir uns ansehen, wie man ein Skript verwendet und Skriptwiedergabe Befehle in Linux, die Ihnen helfen können, Befehle aufzuzeichnen und ihre Ausgabe während einer bestimmten Sitzung auf Ihrem Terminal auszugeben.

Der Verlaufsbefehl ist ein großartiges Befehlszeilenprogramm, das Benutzern hilft, zuvor verwendete Befehle zu speichern, obwohl er nicht die Ausgabe eines Befehls speichert.

Don' t Fräulein: Showterm.io – Ein Linux-Terminal-Aufzeichnungstool

Don' t Fräulein: Die 8 besten Desktop-Bildschirmrekorder für Linux

Daher das Skript Der Befehl ist praktisch, um Ihnen eine leistungsstarke Funktionalität bereitzustellen, die Ihnen hilft, alles, was auf Ihrem Terminal gedruckt wird, in einer log_file aufzuzeichnen . Sie können dann später auf diese Datei verweisen, falls Sie die Ausgabe eines Befehls im Verlauf der log_file anzeigen möchten .

Sie können auch Befehle wiedergeben, die Sie mit scriptreplay aufgezeichnet haben Befehl unter Verwendung einer Timing-Information.

So zeichnen Sie ein Linux-Terminal mit dem Skriptbefehl auf

Das Skript Der Befehl speichert Terminalaktivitäten in einer Protokolldatei, die von einem Benutzer benannt werden kann, wenn ein Benutzer keinen Namen bereitstellt, der Standarddateiname, Typoskript verwendet wird.

Grundlegende Syntax des Skriptbefehls
# script [options] - -timing=timing_file log_filename

Um die Aufzeichnung des Linux-Terminals zu starten, geben Sie script ein und fügen Sie das Protokoll Dateiname hinzu wie abgebildet.

[email protected] ~ $ script history_log.txt

Script started, file is history_log.txt

Zum Stoppen des Skripts , geben Sie exit ein und drücken Sie [Enter] .

[email protected] ~ $ exit

Script done, file is history_log.txt

Wenn das Skript nicht in die benannte Protokolldatei schreiben kann, zeigt es einen Fehler an.

In der Ausgabe unten sind beispielsweise die Berechtigungen der Datei typescript erlaubt kein Lesen, Schreiben und Ausführen der Datei durch keinen Benutzer oder keine Gruppe. Wenn Sie den Skriptbefehl ohne einen Protokolldateinamen ausführen, versucht er, in die Standarddatei typescript zu schreiben zeigt daher einen Fehler.

[email protected] ~ $ ls -l typescript

--------- 1 ubuntu ubuntu 144 Sep 15 00:00 typescript

[email protected] ~ $ script

script: open failed: typescript: Permission denied
Terminated

Beispiele für die Verwendung des Skriptbefehls

Ich habe meine Protokolldatei script.log genannt im Beispiel unten können Sie Ihrer Datei einen anderen Namen geben.

[email protected] ~ $ script script.log

Versuchen Sie nun, einige Befehle auszuführen, damit das Skript ausgeführte Befehle auf dem Terminal aufzeichnen kann.

[email protected] ~ $ cal

   September 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           
                      
[email protected] ~ $ w

 14:49:40 up  4:06,  2 users,  load average: 1.37, 1.56, 1.62
USER     TTY      FROM             [email protected]   IDLE   JCPU   PCPU WHAT
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.00s script script.log

[email protected] ~ $ uptime

 14:49:43 up  4:06,  2 users,  load average: 1.37, 1.56, 1.62

[email protected] ~ $ whoami

tecmint

[email protected] ~ $ echo 'using script'

using script
[email protected] ~ $ exit
exit
Script done, file is script.log

Versuchen Sie nun, die Protokolldatei „script.log“ anzuzeigen ‘ für alle aufgezeichneten Befehle, während Sie sich das Protokoll ansehen, stellen Sie fest, dass das Skript auch Zeilenvorschübe und Rückschritte speichert.

[email protected] ~ $ vi script.log
Beispielausgabe
^[[0m^[[255D^[[01;[email protected]^[[01;34m ~ $^[[00m cal^M
   September 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;[email protected]^[[01;34m ~ $^[[00m w^M
 14:49:40 up  4:06,  2 users,  load average: 1.37, 1.56, 1.62^M
USER     TTY      FROM             [email protected]   IDLE   JCPU   PCPU WHAT^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.00s script script.log^M
^[[01;[email protected]^[[01;34m ~ $^[[00m uptime^M
 14:49:43 up  4:06,  2 users,  load average: 1.37, 1.56, 1.62^M
^[[01;[email protected]^[[01;34m ~ $^[[00m whoami^M
tecmint^M
^[[01;[email protected]^[[01;34m ~ $^[[00m echo ''^Hu'^Hs'^Hi'^Hn'^Hg'^H '^Hs'^Hc'^Hr'^Hi'^Hp'^Ht'^H^M
using script^M
^[[01;[email protected]^[[01;34m ~ $^[[00m exit^M
exit^M

Script done on Wednesday 16 September 2015 02:49:59 PM IST
~                                                              

Sie können das -a verwenden Option zum Anhängen der Protokolldatei oder des Typoskripts unter Beibehaltung des vorherigen Inhalts.

[email protected] ~ $ script -a script.log
Script started, file is script.log

[email protected] ~ $ date
Wed Sep 16 14:59:36 IST 2015


[email protected] ~ $ pwd
/home/tecmint


[email protected] ~ $ whereis script
script: /usr/bin/script /usr/bin/X11/script /usr/share/man/man1/script.1.gz


[email protected] ~ $ whatis script
script (1)           - make typescript of terminal session

Zeigen Sie den Inhalt des Skripts an, loggen Sie sich nach der Verwendung von -a ein Option zum Anhängen.

[email protected] ~ $ vi script.log
Beispielausgabe
^[[0m^[[255D^[[01;[email protected]^[[01;34m ~ $^[[00m date^M
Wed Sep 16 14:59:36 IST 2015^M
^[[01;[email protected]^[[01;34m ~ $^[[00m pwd^M
/home/tecmint^M
^[[01;[email protected]^[[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;[email protected]^[[01;34m ~ $^[[00m whatis script^M
script (1)           - make typescript of terminal session^M
^[[01;[email protected]^[[01;34m ~ $^[[00m vi s^H^[[K^H^[[K^H^[[K^H^[[Kexit^M
exit^M

Um die Ergebnisse eines einzelnen Befehls außer einer interaktiven Shell-Sitzung zu protokollieren, verwenden Sie -c Option.

[email protected] ~ $ script -c 'hostname' script.log

Script started, file is script.log
tecmint.com
Script done, file is script.log

Wenn Sie möchten, dass das Skript in einem stillen Modus ausgeführt wird, können Sie das -q verwenden Möglichkeit. Es wird keine Meldung angezeigt, dass das Skript gestartet oder beendet wird.

[email protected] ~ $ script -c 'who'  -q  script.log

tecmint  tty8         2015-09-16 10:45 (:0)
tecmint  pts/5        2015-09-16 13:42 (:0)

Um Timing-Informationen auf Standardfehler oder eine Datei einzustellen, verwenden Sie –timing Möglichkeit. Die Timing-Informationen sind nützlich, wenn Sie die in log_file.

gespeicherte Ausgabe erneut anzeigen möchten

Lassen Sie uns das Skript starten und die folgenden Befehle ausführen w , Verfügbarkeit und cal aufgezeichnet werden.

[email protected] ~ $ script --timing=time.txt script.log
Script started, file is script.log

[email protected] ~ $ w
 15:09:31 up  4:26,  2 users,  load average: 1.38, 1.39, 1.47
USER     TTY      FROM             [email protected]   IDLE   JCPU   PCPU WHAT
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.00s script --timing=time.txt script.log

[email protected] ~ $ uptime
 15:09:36 up  4:26,  2 users,  load average: 1.43, 1.40, 1.48

[email protected] ~ $ cal
   September 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    

Sie können das script.log anzeigen und time.txt Datei für den Timing-Befehl oben.

[email protected] ~ $ vi script.log
Beispielausgabe
^[[0m^[[255D^[[01;[email protected]^[[01;34m ~ $^[[00m w^M
 15:12:05 up  4:28,  2 users,  load average: 1.31, 1.37, 1.45^M
USER     TTY      FROM             [email protected]   IDLE   JCPU   PCPU WHAT^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.00s script --timing=time.txt script.log^M
^[[01;[email protected]^[[01;34m ~ $^[[00m uptime^M
 15:12:07 up  4:28,  2 users,  load average: 1.29, 1.36, 1.45^M
^[[01;[email protected]^[[01;34m ~ $^[[00m cal^M
   September 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

Sehen Sie sich jetzt time.txt an Datei.

[email protected] ~ $ vi time.txt
Beispielausgabe
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
...
0002 990.000011 20.000003 82 ... 0002

Die time.txt Die Datei hat zwei Spalten, die erste Spalte zeigt, wie viel Zeit seit der letzten Anzeige vergangen ist, und die zweite Spalte zeigt die Anzahl der Zeichen, die dieses Mal angezeigt wurden.

Verwenden Sie die Manpage und –Hilfe um nach weiteren Optionen und Hilfe bei der Verwendung des Skript-Befehlszeilenprogramms zu suchen.

Scriptreplay verwenden, um Skripte mit Timing-Informationen wiederzugeben

Die Skriptwiederholung Der Befehl hilft dabei, Informationen in Ihrer log_file wiederzugeben aufgezeichnet durch das Skript Befehl.

Die Timing-Informationen werden durch -timing=file definiert Option, die mit dem Skript verwendet wird Befehl und Datei in diesem Fall ist es file.txt die mit dem Skriptbefehl .

verwendet wurde

Denken Sie daran, dass Sie die log_file angeben müssen Sie mit dem script-Befehl verwendet haben.

Lassen Sie uns nun die letzten drei Befehle wiederholen w , Verfügbarkeit und cal dass wir wie folgt gelaufen waren.

[email protected] ~ $ scriptreplay --timing=time.txt script.log

Wenn die log_file unter Verwendung der Timing-Informationen wiedergegeben werden, werden die aufgezeichneten Befehle ausgeführt und ihre Ausgabe wird zur gleichen Zeit angezeigt, zu der die ursprüngliche Ausgabe während der Aufzeichnung angezeigt wurde.

Zusammenfassung

Diese beiden Befehle, script und Skriptwiedergabe einfach zu bedienen und sehr hilfreich, wenn Sie denselben Stapel von Befehlen mehrmals ausführen müssen. Sie helfen sehr bei der Verwaltung von Servern, die nur über eine Befehlszeilenschnittstelle für die Interaktion mit Ihrem System verfügen. Ich hoffe, dieser Leitfaden war hilfreich, und wenn Sie etwas hinzuzufügen haben oder bei der Verwendung auf eine Herausforderung stoßen, zögern Sie nicht, einen Kommentar zu posten.


Linux
  1. So zeichnen Sie Ihr Linux-Terminal mit asciinema auf

  2. So geben Sie Terminalsitzungen wieder, die mit dem Linux-Skriptbefehl aufgezeichnet wurden

  3. So erfassen Sie Terminalsitzungen und geben sie mit dem Linux-Skriptbefehl aus

  4. Wie dekomprimiere ich das .xz-Dateiformat unter Linux mit den Dienstprogrammen tar und xz?

  5. Wie beendet man das Linux-Terminal mit einem Python-Skript?

So spielen Sie die aufgezeichneten Terminalsitzungen mit dem Scriptreplay-Befehl ab

So erstellen Sie eine Datei in Linux mit Terminal

So zeichnen Sie Linux-Terminalsitzungen mit Asciinema auf

So zeichnen Sie Terminalsitzungen in Ubuntu auf

So kopieren Sie Dateien und Verzeichnisse im Linux-Terminal

So nehmen Sie mit Audacity Audio auf und speichern es als MP3-Datei