Weboldal keresés

Linux terminál munkamenetek rögzítése és visszajátszása 'script' és 'scriptreplay' parancsokkal


Ebben az útmutatóban megvizsgáljuk, hogyan kell használni a script és a scriptreplay parancsokat Linuxon, amelyek segíthetnek a parancsok rögzítésében és a terminálra nyomtatott kimenetükben egy adott időtartam alatt. ülés.

A történelem parancs egy nagyszerű parancssori segédprogram, amely segít a felhasználóknak a korábban használt parancsok tárolásában, bár nem tárolja a parancs kimenetét.

Ne hagyja ki: Showterm.io – Linux terminálrögzítő eszköz

Ne hagyja ki: 8 legjobb asztali képernyőrögzítő Linuxra

Ezért a script parancs hasznos lehet, hogy hatékony funkciót biztosítson, amely segít a terminálon kinyomtatott mindent log_file-be rögzíteni. Később hivatkozhat erre a fájlra, ha meg szeretné tekinteni egy parancs kimenetét az előzményekben a log_file fájlból.

A scriptreplay paranccsal rögzített parancsokat egy időzítési információ segítségével is lejátszhatja.

Linux terminál rögzítése script parancs segítségével

A script parancs a termináltevékenységeket egy naplófájlban tárolja, amelyet a felhasználó elnevezhet. Ha a felhasználó nem ad meg nevet, akkor az alapértelmezett fájlnév, a gépirat kerül felhasználásra. .

A script parancs alapvető szintaxisa

script [options] - -timing=timing_file log_filename

A Linux terminál rögzítésének megkezdéséhez írja be a script kifejezést, és adja hozzá a naplófájl fájlnevét az ábrán látható módon.


tecmint@tecmint ~ $ script history_log.txt

Script started, file is history_log.txt

A script leállításához írja be az exit parancsot, és nyomja meg az [Enter] billentyűt.


tecmint@tecmint ~ $ exit

Script done, file is history_log.txt

Ha a szkript nem tud írni a megnevezett naplófájlba, akkor hibát jelez.

Például az alábbi kimenetben a typescript fájl engedélyei nem teszik lehetővé a fájl olvasását, írását és végrehajtását egyetlen felhasználó vagy csoport sem. Ha naplófájlnév nélkül futtatja a script parancsot, az az alapértelmezett fájlba próbál írni, typescript, ezért hibát jelez.


tecmint@tecmint ~ $ ls -l typescript

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

tecmint@tecmint ~ $ script

script: open failed: typescript: Permission denied
Terminated

Példák a script parancs használatára

Az alábbi példában a naplófájlomat script.log-nak neveztem el, a fájlnak más nevet is adhat.


tecmint@tecmint ~ $ script script.log

Most próbáljon meg néhány parancsot végrehajtani, hogy a szkript rögzítse a végrehajtott parancsokat a terminálon.


tecmint@tecmint ~ $ 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           
                      
tecmint@tecmint ~ $ w

 14:49:40 up  4:06,  2 users,  load average: 1.37, 1.56, 1.62
USER     TTY      FROM             LOGIN@   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

tecmint@tecmint ~ $ uptime

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

tecmint@tecmint ~ $ whoami

tecmint

tecmint@tecmint ~ $ echo 'using script'

using script
tecmint@tecmint ~ $ exit
exit
Script done, file is script.log

Most próbálja meg megtekinteni a 'script.log' naplófájlt az összes rögzített parancshoz, miközben a napló megtekintése közben rájön, hogy a szkript soremeléseket és visszalépéseket is tárol.


tecmint@tecmint ~ $ vi script.log
Minta kimenet

^[[0m^[[255D^[[01;32mtecmint@tecmint^[[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;32mtecmint@tecmint^[[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             LOGIN@   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;32mtecmint@tecmint^[[01;34m ~ $^[[00m uptime^M
 14:49:43 up  4:06,  2 users,  load average: 1.37, 1.56, 1.62^M
^[[01;32mtecmint@tecmint^[[01;34m ~ $^[[00m whoami^M
tecmint^M
^[[01;32mtecmint@tecmint^[[01;34m ~ $^[[00m echo ''^Hu'^Hs'^Hi'^Hn'^Hg'^H '^Hs'^Hc'^Hr'^Hi'^Hp'^Ht'^H^M
using script^M
^[[01;32mtecmint@tecmint^[[01;34m ~ $^[[00m exit^M
exit^M

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

A -a kapcsolóval hozzáfűzheti a naplófájlt vagy a gépiratot, megtartva a korábbi tartalmat.


tecmint@tecmint ~ $ script -a script.log
Script started, file is script.log

tecmint@tecmint ~ $ date
Wed Sep 16 14:59:36 IST 2015


tecmint@tecmint ~ $ pwd
/home/tecmint


tecmint@tecmint ~ $ whereis script
script: /usr/bin/script /usr/bin/X11/script /usr/share/man/man1/script.1.gz


tecmint@tecmint ~ $ whatis script
script (1)           - make typescript of terminal session

Tekintse meg a szkript tartalmát, majd jelentkezzen be, miután a -a opciót hozzáfűzte.


tecmint@tecmint ~ $ vi script.log
Minta kimenet

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

Az interaktív shell-munkamenettől eltérő egyetlen parancs eredményének naplózásához használja a -c kapcsolót.


tecmint@tecmint ~ $ script -c 'hostname' script.log

Script started, file is script.log
linux-console.net
Script done, file is script.log

Ha azt szeretné, hogy a szkript csendes módban fusson, használhatja a -q kapcsolót. Nem fog megjelenni a szkript indulását vagy kilépését jelző üzenet.


tecmint@tecmint ~ $ script -c 'who'  -q  script.log

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

Ha az időzítési információkat normál hibára vagy fájlra szeretné beállítani, használja az –időzítés lehetőséget. Az időzítési információ akkor hasznos, ha újra meg szeretné jeleníteni a log_file fájlban tárolt kimenetet.

Indítsuk el a szkriptet, és futtassuk a következő w, uptime és cal parancsokat a rögzítéshez.


tecmint@tecmint ~ $ script --timing=time.txt script.log
Script started, file is script.log

tecmint@tecmint ~ $ w
 15:09:31 up  4:26,  2 users,  load average: 1.38, 1.39, 1.47
USER     TTY      FROM             LOGIN@   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

tecmint@tecmint ~ $ uptime
 15:09:36 up  4:26,  2 users,  load average: 1.43, 1.40, 1.48

tecmint@tecmint ~ $ 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    

Megtekintheti a fenti időzítési parancs script.log és time.txt fájlját.


tecmint@tecmint ~ $ vi script.log
Minta kimenet

^[[0m^[[255D^[[01;32mtecmint@tecmint^[[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             LOGIN@   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;32mtecmint@tecmint^[[01;34m ~ $^[[00m uptime^M
 15:12:07 up  4:28,  2 users,  load average: 1.29, 1.36, 1.45^M
^[[01;32mtecmint@tecmint^[[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

Most tekintse meg a time.txt fájlt.


tecmint@tecmint ~ $ vi time.txt
Minta kimenet

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
...

A time.txt fájlnak két oszlopa van, az első oszlop azt mutatja, hogy mennyi idő telt el az utolsó megjelenítés óta, a második oszlop pedig az ezúttal megjelenített karakterek számát.

A man oldal és a –help segítségével további lehetőségeket kereshet, és segítséget kereshet a script parancssori segédprogram használatához.

Szkriptek lejátszása a szkriptek visszajátszására időzítési információk segítségével

A scriptreplay parancs segít visszajátszani a log_file-ben lévő információkat, amelyeket a script parancs rögzített.

Az időzítési információkat a -timing=file paraméter határozza meg, amelyet a script paranccsal használunk, és a file ebben az esetben a file.txt amelyet a script paranccsal használtak .

Ne feledje, hogy meg kell adnia a script paranccsal használt log_file fájlt.

Most játsszuk újra a három legutóbbi w, uptime és cal parancsot, amelyeket az alábbiak szerint futtattunk.


tecmint@tecmint ~ $ scriptreplay --timing=time.txt script.log

Amikor a log_file lejátszása az időzítési információk felhasználásával történik, a rögzített parancsok lefutnak, és a kimenetük az eredeti kimenet megjelenítésével egy időben jelenik meg a rögzítés közben.

Összegzés

Ez a két parancs, a script és a scriptreplay könnyen használható, és sokat segít, ha ugyanazt a parancscsoportot kell többször futtatnia. Sokat segítenek az olyan szerverek kezelésében, amelyek csak parancssori felülettel rendelkeznek a rendszerrel való interakcióhoz. Reméljük, hogy ez az útmutató hasznos volt, és ha bármit kell hozzátennie, vagy kihívásokkal kell szembenéznie használatuk során, ne habozzon megjegyzést fűzni hozzá.