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öchtenLassen 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 wurdeDenken 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.