Unsaon Pagrekord ug Pag-replay sa Linux Terminal Session gamit ang script ug scriptreplay Commands


Niini nga giya atong tan-awon kon unsaon paggamit ang usa ka script ug scriptreplay nga mga sugo sa Linux nga makatabang kanimo sa pagrekord sa mga sugo ug ang ilang output nga giimprinta sa imong terminal atol sa usa ka sesyon.

Ang history command usa ka maayo nga command-line utility nga nagtabang sa mga tiggamit sa pagtipig sa miaging command nga gigamit, bisan wala kini magtipig sa output sa usa ka command.

Busa ang script command magamit aron mahatagan ka usa ka kusgan nga gamit nga makatabang kanimo sa pagrekord sa tanan nga giimprinta sa imong terminal sa usa ka log_file. Mahimo nimong i-refer ang kini nga file sa ulahi kung gusto nimo tan-awon ang output sa usa ka mando sa kasaysayan gikan sa log_file.

Mahimo usab nimo nga i-replay ang mga sugo nga imong girekord gamit ang scriptreplay nga sugo pinaagi sa paggamit sa impormasyon sa panahon.

Giunsa ang Pagrekord sa Linux Terminal Gamit ang script Command

Ang script command nagtipig sa mga kalihokan sa terminal sa usa ka log file nga mahimong nganlan sa usa ka user, kung ang usa ka ngalan wala gihatag sa usa ka user, ang default file name, typescript ang gigamit.

# script [options] - -timing=timing_file log_filename

Aron masugdan ang pagrekord sa terminal sa Linux, i-type ang script ug idugang ang log filename sama sa gipakita.

[email  ~ $ script history_log.txt

Script started, file is history_log.txt

Aron ihunong ang script, i-type ang exit ug pindota ang [Enter].

[email  ~ $ exit

Script done, file is history_log.txt

Kung ang script dili makasulat sa gihinganlan nga log file unya nagpakita kini og sayup.

Pananglitan, sa output sa ubos, ang mga permiso sa file typescript wala magtugot sa pagbasa, pagsulat ug pagpatuman sa file nga dili sa bisan unsang user o grupo. Kung imong gipadagan ang script nga command nga walay log file name, mosulay kini sa pagsulat sa default file, typescript busa nagpakita og sayop.

[email  ~ $ ls -l typescript

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

[email  ~ $ script

script: open failed: typescript: Permission denied
Terminated

Ginganlan nako ang akong log file script.log sa pananglitan sa ubos, mahimo nimong hatagan ang imong file og lain nga ngalan.

[email  ~ $ script script.log

Karon sulayi ang pagpatuman sa pipila ka mga sugo aron tugotan ang script sa pagrekord sa mga gipatuman nga mga sugo sa terminal.

[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

Karon sulayi ang pagtan-aw sa log file nga 'script.log' alang sa tanan nga natala nga mga mando, samtang imong gitan-aw ang log nahibal-an nimo nga ang script nagtipig usab sa mga feed sa linya ug mga backspace.

[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
~                                                              

Mahimo nimong gamiton ang -a nga kapilian aron idugang ang log file o typescript, nga magpabilin ang nauna nga mga sulud.

[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

Tan-awa ang mga sulod sa script, log human sa paggamit sa -usa ka kapilian sa pagdugang niini.

[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

Sa pag-log sa mga resulta sa usa ka command gawas sa usa ka interactive shell session, gamita ang -c nga opsyon.

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

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

Kung gusto nimo ang script nga modagan sa usa ka hilum nga mode unya mahimo nimo gamiton ang -q nga kapilian. Dili nimo makita ang usa ka mensahe nga nagpakita nga ang script nagsugod o paggawas.

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

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

Aron itakda ang impormasyon sa timing sa standard error o usa ka file gamita ang –timing option. Ang impormasyon sa timing mapuslanon kung gusto nimo nga ipakita pag-usab ang output nga gitipigan sa log_file.

Atong sugdan ang script ug ipadagan ang mosunod nga mga sugo w, uptime ug cal nga irekord.

[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    

Mahimo nimong tan-awon ang script.log ug time.txt file alang sa timing command sa ibabaw.

[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

Karon tan-awa ang time.txt file.

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

Ang time.txt nga file adunay duha ka mga kolum, ang unang kolum nagpakita kung pila ka oras ang milabay sukad sa katapusan nga pagpakita ug ang ikaduha nga kolum, nagpakita sa gidaghanon sa mga karakter nga gipakita niining panahona.

Gamita ang man page ug –help sa pagpangita og dugang mga opsyon ug tabang sa paggamit sa script command-line utility.

Paggamit sa scriptreplay aron i-replay ang mga script gamit ang impormasyon sa oras

Ang scriptreplay command makatabang sa pag-replay sa impormasyon sa imong log_file nga girekord sa script command.

Ang impormasyon sa timing gihubit pinaagi sa -timing=file nga opsyon nga gigamit uban sa script command ug ang file niini nga kaso mao ang file.txt nga gigamit uban sa script command .

Hinumdumi kinahanglan nimo nga ipiho ang log_file nga imong gigamit sa script nga mando.

Atong balikon karon ang katapusang tulo ka mga sugo w, uptime ug cal nga atong gipadagan sama sa mosunod.

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

Kung ang log_file gi-replay gamit ang kasayuran sa oras, ang mga mando nga natala gipadagan ug ang ilang output gipakita sa parehas nga oras ang orihinal nga output gipakita samtang girekord.

Summary

Kining duha ka mga sugo, script ug scriptreplay sayon gamiton ug makatabang pag-ayo kung kinahanglan nimo nga magpadagan sa samang batch sa mga sugo sa makadaghang higayon. Nakatabang sila og daghan sa pagdumala sa mga server nga adunay command-line interface lamang alang sa interaksyon sa imong sistema. Hinaut nga kini nga giya mapuslanon ug kung adunay ka idugang o atubangon ang usa ka hagit samtang gigamit kini, ayaw pagpanuko sa pag-post sa usa ka komento.