Kuinka tallentaa ja toistaa Linux-pääteistuntoja käyttämällä script- ja scriptreplay-komentoja
Tässä oppaassa tarkastellaan, kuinka voit käyttää script- ja scriptreplay-komentoja Linuxissa, jotka voivat auttaa sinua tallentamaan komentoja ja niiden tulosteita, jotka tulostetaan päätteeseesi tietyn ajan. istunto.
Historia-komento on loistava komentorivityökalu, joka auttaa käyttäjiä tallentamaan aiemman käytetyn komennon, vaikka se ei tallenna komennon tulosta.
Älä missaa: Showterm.io – Linux-päätteen tallennustyökalu
Älä missaa: 8 parasta työpöytänäytön tallenninta Linuxille
Siksi script-komento on hyödyllinen tarjoamaan sinulle tehokkaan toiminnon, jonka avulla voit tallentaa kaiken päätelaitteellesi tulostetun log_file-tiedostoon. Voit sitten viitata tähän tiedostoon myöhemmin, jos haluat tarkastella historiassa olevan komennon tulosta log_file-tiedostosta.
Voit myös toistaa scriptreplay-komennolla tallentamasi komennot käyttämällä ajoitustietoja.
Kuinka tallentaa Linux-pääte komentosarjakomennolla
script-komento tallentaa päätetoiminnot lokitiedostoon, jonka käyttäjä voi nimetä. Kun käyttäjä ei ole antanut nimeä, käytetään oletustiedoston nimeä, konekirjoitus. .
Komentosarjakomennon perussyntaksi
script [options] - -timing=timing_file log_filename
Aloita Linux-päätteen tallentaminen kirjoittamalla script ja lisäämällä lokin tiedostonimi kuvan mukaisesti.
tecmint@tecmint ~ $ script history_log.txt
Script started, file is history_log.txt
Pysäytä skripti kirjoittamalla exit ja painamalla [Enter].
tecmint@tecmint ~ $ exit
Script done, file is history_log.txt
Jos komentosarja ei voi kirjoittaa nimettyyn lokitiedostoon, se näyttää virheen.
Esimerkiksi alla olevassa tulosteessa tiedoston typescript käyttöoikeudet eivät salli tiedoston lukemista, kirjoittamista ja suorittamista muiden käyttäjien tai ryhmien toimesta. Kun suoritat komentosarjakomennon ilman lokitiedoston nimeä, se yrittää kirjoittaa oletustiedostoon, kirjoituskirjoitus, mikä näyttää virheen.
tecmint@tecmint ~ $ ls -l typescript
--------- 1 ubuntu ubuntu 144 Sep 15 00:00 typescript
tecmint@tecmint ~ $ script
script: open failed: typescript: Permission denied
Terminated
Esimerkkejä script-komennon käytöstä
Olen nimennyt lokitiedostolleni script.log alla olevassa esimerkissä, voit antaa tiedostollesi toisen nimen.
tecmint@tecmint ~ $ script script.log
Yritä nyt suorittaa muutamia komentoja, jotta skripti voi tallentaa suoritetut komennot terminaaliin.
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
Yritä nyt tarkastella kaikkien tallennettujen komentojen lokitiedostoa script.log. Kun tarkastelet lokia, huomaat, että komentosarja tallentaa myös rivinsiirrot ja askelpalautit.
tecmint@tecmint ~ $ vi script.log
Näytelähtö
^[[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
~
Voit käyttää -a-vaihtoehtoa lokitiedoston tai konekirjoituksen liittämiseen säilyttäen aiemman sisällön.
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
Tarkastele komentosarjan sisältöä, kirjaudu sisään, kun olet lisännyt sen käyttämällä -a-vaihtoehtoa.
tecmint@tecmint ~ $ vi script.log
Näytelähtö
^[[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
Jos haluat kirjata tulokset yksittäisestä komennosta, joka ei ole interaktiivinen komentotulkkiistunto, käytä -c-vaihtoehtoa.
tecmint@tecmint ~ $ script -c 'hostname' script.log
Script started, file is script.log
linux-console.net
Script done, file is script.log
Jos haluat skriptin toimivan hiljaisessa tilassa, voit käyttää -q-vaihtoehtoa. Et näe viestiä siitä, että skripti alkaa tai lopettaa.
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)
Aseta ajoitustiedot vakiovirheiksi tai tiedostoksi –ajoitus-vaihtoehdolla. Ajoitustiedot ovat hyödyllisiä, kun haluat näyttää uudelleen lokitiedostoon tallennetun tulosteen.
Aloitetaan komentosarja ja suoritetaan seuraavat komennot w, uptime ja cal, jotka tallennetaan.
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
Voit tarkastella yllä olevan ajoituskomennon script.log- ja time.txt-tiedostoja.
tecmint@tecmint ~ $ vi script.log
Näytelähtö
^[[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
Näytä nyt time.txt-tiedosto.
tecmint@tecmint ~ $ vi time.txt
Näytelähtö
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
...
time.txt-tiedostossa on kaksi saraketta. Ensimmäinen sarake näyttää, kuinka paljon aikaa on kulunut edellisestä näytöstä, ja toinen sarake näyttää tällä kertaa näytettyjen merkkien määrän.
Käytä man-sivua ja –help-toimintoa etsiäksesi lisää vaihtoehtoja ja ohjeita skriptin komentorivityökalun käyttöön.
Skriptien uudelleentoiston käyttäminen ajoitustietojen avulla
scriptreplay-komento auttaa toistamaan script-komennolla tallennettuja log_file-tietoja.
Ajoitustiedot määrittää -timing=file-vaihtoehto, jota käytetään script-komennon kanssa, ja tiedosto on tässä tapauksessa file.txt jota käytettiin komentosarjakomennon kanssa .
Muista, että sinun on määritettävä log_file, jota käytit komentosarjakomennon kanssa.
Toistetaan nyt kolme viimeisintä komentoa w, uptime ja cal, jotka olimme suorittaneet seuraavasti.
tecmint@tecmint ~ $ scriptreplay --timing=time.txt script.log
Kun log_file toistetaan uudelleen ajoitustietojen avulla, tallennetut komennot suoritetaan ja niiden tulos näytetään samalla, kun alkuperäinen tulos näytettiin tallennuksen aikana.
Yhteenveto
Nämä kaksi komentoa, script ja scriptreplay ovat helppokäyttöisiä ja auttavat paljon, kun sinun täytyy suorittaa sama komentosarja useita kertoja. Ne auttavat paljon sellaisten palvelimien hallinnassa, joissa on vain komentorivikäyttöliittymä vuorovaikutukseen järjestelmän kanssa. Toivottavasti tämä opas oli hyödyllinen, ja jos sinulla on jotain lisättävää tai jos sinulla on haasteita käyttäessäsi niitä, älä epäröi kommentoida.