Wéi Rekord a Replay Linux Terminal Sessiounen mat Skript a scriptreplay Kommandoen
An dësem Guide wäerte mir kucken wéi Dir e Skript a scriptreplay Kommandoen am Linux benotzt, déi Iech hëllefe fir Kommandoen opzehuelen an hir Ausgab op Ärem Terminal während enger bestëmmter Sessioun gedréckt.
D'Geschicht Kommando ass e super Kommandozeilen Utility deen d'Benotzer hëlleft de fréiere benotzte Kommando ze späicheren, awer et späichert d'Ausgab vun engem Kommando net.
Dofir ass de Skriptbefehl praktesch fir Iech eng mächteg Funktionalitéit ze bidden déi Iech hëlleft alles opzehuelen wat op Ärem Terminal op eng log_file gedréckt gëtt. Dir kënnt dann op dës Datei spéider referenzéieren am Fall wou Dir d'Ausgab vun engem Kommando an der Geschicht aus der log_file kucke wëllt.
Dir kënnt och Kommandoen widderhuelen, déi Dir mat dem scriptreplay Kommando opgeholl hutt andeems Dir eng Timinginformatioun benotzt.
Wéi Rekord Linux Terminal Mat Skript Kommando
De Skriptbefehl späichert Terminalaktivitéiten an enger Logdatei déi vun engem Benotzer benannt ka ginn, wann en Numm net vun engem Benotzer geliwwert gëtt, gëtt de Standard Dateinumm, Typescript benotzt.
# script [options] - -timing=timing_file log_filename
Fir den Opname vum Linux-Terminal unzefänken, gitt Skript a füügt de Log Dateinumm un wéi gewisen.
[email ~ $ script history_log.txt Script started, file is history_log.txt
Fir de Skript ze stoppen, tippt Ausgang an dréckt op [Enter].
[email ~ $ exit Script done, file is history_log.txt
Wann de Skript net op déi genannte Logdatei schreiwen kann, da weist et e Feeler.
Zum Beispill, an der Ausgab hei drënner, erlaabt d'Permissiounen vum Dateitypscript net d'Liesen, Schreiwen an Ausféierung vun der Datei net vun engem Benotzer oder enger Grupp. Wann Dir de Skriptbefehl ouni e Log Dateinumm leeft, probéiert et op d'Standarddatei ze schreiwen, Typscript also weist e Feeler.
[email ~ $ ls -l typescript --------- 1 ubuntu ubuntu 144 Sep 15 00:00 typescript [email ~ $ script script: open failed: typescript: Permission denied Terminated
Ech hunn meng Logbicher script.log am Beispill hei ënnen genannt, Dir kënnt Äre Fichier en aneren Numm ginn.
[email ~ $ script script.log
Probéiert elo e puer Kommandoen auszeféieren fir de Skript ze erlaben ausgefouert Kommandoen um Terminal opzehuelen.
[email ~ $ 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 ~ $ w 14:49:40 up 4:06, 2 users, load average: 1.37, 1.56, 1.62 USER TTY FROM [email 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 ~ $ uptime 14:49:43 up 4:06, 2 users, load average: 1.37, 1.56, 1.62 [email ~ $ whoami tecmint [email ~ $ echo 'using script' using script [email ~ $ exit exit Script done, file is script.log
Probéiert elo d'Logdatei 'script.log' fir all opgeholl Kommandoen ze gesinn, wärend Dir de Log kuckt, mierkt Dir datt de Skript och Zeilfeeds an Backspaces späichert.
[email ~ $ vi script.log
^[[0m^[[255D^[[01;[email ^[[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 ^[[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 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 ^[[01;34m ~ $^[[00m uptime^M 14:49:43 up 4:06, 2 users, load average: 1.37, 1.56, 1.62^M ^[[01;[email ^[[01;34m ~ $^[[00m whoami^M tecmint^M ^[[01;[email ^[[01;34m ~ $^[[00m echo ''^Hu'^Hs'^Hi'^Hn'^Hg'^H '^Hs'^Hc'^Hr'^Hi'^Hp'^Ht'^H^M using script^M ^[[01;[email ^[[01;34m ~ $^[[00m exit^M exit^M Script done on Wednesday 16 September 2015 02:49:59 PM IST ~
Dir kënnt d'Optioun -a benotzen fir d'Protokolldatei oder d'Typskript ze addéieren, de fréieren Inhalt behalen.
[email ~ $ script -a script.log Script started, file is script.log [email ~ $ date Wed Sep 16 14:59:36 IST 2015 [email ~ $ pwd /home/tecmint [email ~ $ whereis script script: /usr/bin/script /usr/bin/X11/script /usr/share/man/man1/script.1.gz [email ~ $ whatis script script (1) - make typescript of terminal session
Kuckt d'Inhalter vum Skript, loggt Iech nodeems Dir benotzt -a Optioun benotzt fir et ze addéieren.
[email ~ $ vi script.log
^[[0m^[[255D^[[01;[email ^[[01;34m ~ $^[[00m date^M Wed Sep 16 14:59:36 IST 2015^M ^[[01;[email ^[[01;34m ~ $^[[00m pwd^M /home/tecmint^M ^[[01;[email ^[[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 ^[[01;34m ~ $^[[00m whatis script^M script (1) - make typescript of terminal session^M ^[[01;[email ^[[01;34m ~ $^[[00m vi s^H^[[K^H^[[K^H^[[K^H^[[Kexit^M exit^M
Fir d'Resultater vun engem eenzegen Kommando anescht wéi eng interaktiv Shell-Sessioun ze protokolléieren, benotzt d'Optioun -c.
[email ~ $ script -c 'hostname' script.log Script started, file is script.log linux-console.net Script done, file is script.log
Wann Dir wëllt datt de Skript an engem rouege Modus leeft, da kënnt Dir d'Optioun -q benotzen. Dir gesitt net e Message deen weist datt de Skript ufänkt oder erausgeet.
[email ~ $ script -c 'who' -q script.log tecmint tty8 2015-09-16 10:45 (:0) tecmint pts/5 2015-09-16 13:42 (:0)
Fir Timinginformatioun op Standardfehler oder eng Datei ze setzen benotzt d'-timing Optioun. D'Timinginformatioun ass nëtzlech wann Dir den Ausgang, deen an der log_file gespäichert ass, nei affichéiere wëllt.
Loosst eis de Skript starten a lafen déi folgend Kommandoen w, Uptime a cal fir opzehuelen.
[email ~ $ script --timing=time.txt script.log Script started, file is script.log [email ~ $ w 15:09:31 up 4:26, 2 users, load average: 1.38, 1.39, 1.47 USER TTY FROM [email 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 ~ $ uptime 15:09:36 up 4:26, 2 users, load average: 1.43, 1.40, 1.48 [email ~ $ 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
Dir kënnt d'script.log an time.txt Datei fir den Timing Kommando uewen kucken.
[email ~ $ vi script.log
^[[0m^[[255D^[[01;[email ^[[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 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 ^[[01;34m ~ $^[[00m uptime^M 15:12:07 up 4:28, 2 users, load average: 1.29, 1.36, 1.45^M ^[[01;[email ^[[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
Elo kuckt time.txt Datei.
[email ~ $ vi time.txt
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 ...
D'time.txt-Datei huet zwou Kolonnen, déi éischt Kolonn weist wéi vill Zäit zanter dem leschten Affichage vergaangen ass an déi zweet Kolonn weist d'Zuel vun Zeechen, déi dës Kéier ugewise goufen.
Benotzt d'Man Säit an -help fir méi Optiounen ze sichen an Hëllef beim Benotze vum Skript Kommandozeil Utility.
Benotzt Scriptreplay fir Scripte mat Timinginformatioun ze widderhuelen
De scriptreplay Kommando hëlleft d'Informatioun an Ärem log_file ze widderhuelen, deen duerch de Skriptbefehl opgeholl gëtt.
D'Timinginformatioun gëtt definéiert vun der -timing=Datei-Optioun déi mam Skriptbefehl benotzt gëtt an d'Datei an dësem Fall ass file.txt déi mam Skriptbefehl benotzt gouf.
Denkt drun datt Dir de log_file spezifizéiere musst deen Dir mam Skriptbefehl benotzt hutt.
Loosst eis elo déi lescht dräi Kommandoen w, Uptime a cal widderhuelen, déi mir wéi follegt lafen.
[email ~ $ scriptreplay --timing=time.txt script.log
Wann d'log_file mat der Timinginformatioun zréckgespillt gëtt, ginn d'opgeholl Kommandoen ausgeführt an hir Ausgab gëtt zur selwechter Zäit ugewisen datt den ursprénglechen Ausgang wärend der Opnam ugewise gouf.
Resumé
Dës zwee Kommandoen, Skript a Skript spillen einfach ze benotzen an hëllefen vill wann Dir déiselwecht Batch Kommandoen e puer Mol ausféiere musst. Si hëllefen vill bei der Gestioun vun Serveren déi nëmmen Kommandozeileninterface fir Interaktioun mat Ärem System hunn. Hoffen dëse Guide war nëtzlech a wann Dir eppes hutt ze addéieren oder eng Erausfuerderung ze stellen wärend Dir se benotzt, zéckt net e Kommentar ze posten.