Kuinka tallentaa ja toistaa Linux-pääteistuntoja komentosarjojen ja komentosarjojen komentojen avulla
Tässä oppaassa aiomme tutkia kuinka käyttää komentosarjaa ja komentosarjan toistokomentoja Linuxissa, jotka voivat auttaa sinua tallentamaan komentoja ja niiden lähtöä päätelaitteeseesi tietyn istunnon aikana.
Historia-komento on loistava komentorivin apuohjelma, joka auttaa käyttäjiä tallentamaan aiemmin käytetyn komennon, vaikka se ei tallenna komennon lähtöä.
Siksi komentokomento on kätevä tarjoamaan sinulle tehokkaan toiminnallisuuden, joka auttaa sinua tallentamaan kaiken päätelaitteeseesi tulostetun lokitiedostoon. Voit sitten viitata tähän tiedostoon myöhemmin, jos haluat tarkastella komennon lähtöä historiassa lokitiedostosta.
Voit myös toistaa komentoja, jotka nauhoitit komentosarjan komennolla, käyttämällä ajoitustietoja.
Kuinka tallentaa Linux-pääte komentokomennolla
Komentosarjakomento tallentaa pääteoperaatiot lokitiedostoon, jonka käyttäjä voi nimetä. Jos käyttäjä ei anna nimeä, käytetään oletustiedostonimeä, konekirjoitusta.
# script [options] - -timing=timing_file log_filename
Aloita Linux-päätelaitteen tallennus kirjoittamalla komentosarja ja lisäämällä lokitiedoston nimi kuvan osoittamalla tavalla.
[email ~ $ script history_log.txt Script started, file is history_log.txt
Pysäytä komentosarja kirjoittamalla exit ja painamalla [Enter].
[email ~ $ exit Script done, file is history_log.txt
Jos komentosarja ei voi kirjoittaa nimettyyn lokitiedostoon, se näyttää virheen.
Esimerkiksi alla olevassa lähdössä tiedostotyyppikirjoituksen käyttöoikeudet eivät salli tiedoston lukemista, kirjoittamista ja suorittamista kenenkään käyttäjän tai ryhmän toimesta. Kun suoritat komentokomennon ilman lokitiedoston nimeä, se yrittää kirjoittaa oletustiedostoon, jolloin konekirjoitus näyttää virheen.
[email ~ $ ls -l typescript --------- 1 ubuntu ubuntu 144 Sep 15 00:00 typescript [email ~ $ script script: open failed: typescript: Permission denied Terminated
Olen nimennyt lokitiedostoni script.log alla olevassa esimerkissä, voit antaa tiedostollesi toisen nimen.
[email ~ $ script script.log
Yritä nyt suorittaa muutama komento, jotta skripti voi tallentaa suoritetut komennot päätelaitteeseen.
[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
Yritä nyt tarkastella kaikkien tallennettujen komentojen lokitiedostoa "script.log", kun taas tarkastelet lokia, huomaat, että komentosarja tallentaa myös rivin syötteet ja askelpalautin.
[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 ~
Voit käyttää -vaihtoehtoa lisätäksesi lokitiedoston tai konekirjoituksen säilyttäen aiemman sisällön.
[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
Tarkastele komentosarjan sisältöä ja kirjaudu sen jälkeen, kun olet lisännyt -a-vaihtoehdon.
[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
Voit kirjata yksittäisen komennon, joka ei ole vuorovaikutteinen komentoistunto, tulokset -c-vaihtoehdon avulla.
[email ~ $ script -c 'hostname' script.log Script started, file is script.log linux-console.net Script done, file is script.log
Jos haluat komentosarjan suorittavan hiljaisessa tilassa, voit käyttää -q-vaihtoehtoa. Et näe viestiä, joka osoittaa komentosarjan alkavan tai poistuvan.
[email ~ $ script -c 'who' -q script.log tecmint tty8 2015-09-16 10:45 (:0) tecmint pts/5 2015-09-16 13:42 (:0)
Jos haluat asettaa ajoitustiedoksi vakiovirheen tai tiedoston, käytä –ajastusvaihtoehtoa. Ajoitustiedoista on hyötyä, kun haluat näyttää lokitiedostoon tallennetun tuotoksen uudelleen.
Aloitetaan komentosarja ja suoritetaan seuraavat tallennettavat komennot w, käyttöaika ja cal.
[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
Voit tarkastella script.log- ja time.txt-tiedostoja yllä olevalle ajoituskomennolle.
[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
Katsele nyt time.txt-tiedostoa.
[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 ...
Time.txt-tiedostossa on kaksi saraketta, ensimmäisessä sarakkeessa näkyy, kuinka paljon aikaa on kulunut viimeisestä näytöstä, ja toisessa sarakkeessa näytetään tällä kertaa näytettyjen merkkien määrä.
Käytä man-sivua ja –help etsiäksesi lisää vaihtoehtoja ja apua komentosarjan komentorivin apuohjelman käytöstä.
Komentosarjojen toistaminen skriptien toistamiseksi ajoitustietojen avulla
Scriptreplay-komento auttaa toistamaan skriptikomennolla tallentamasi lokitiedoston tiedot.
Ajoitustiedot määritetään komentokomennon kanssa käytetyllä -timing = tiedosto -vaihtoehdolla, ja tiedosto tässä tapauksessa on tiedosto.txt, jota käytettiin komentokomennon kanssa.
Muista, että sinun on määritettävä komentokomennolla käyttämäsi lokitiedosto.
Toistetaan nyt viimeiset kolme käskyä w, uptime ja cal, jotka olemme suorittaneet, seuraavasti.
[email ~ $ scriptreplay --timing=time.txt script.log
Kun lokitiedosto toistetaan uudelleen ajoitustietojen avulla, tallennetut komennot suoritetaan ja niiden lähtö näytetään samalla kun alkuperäinen lähtö näytettiin tallennuksen aikana.
Yhteenveto
Nämä kaksi komentoa, komentosarja ja komentosarjan toisto ovat helppokäyttöisiä ja auttavat paljon, kun joudut suorittamaan saman komentojoukon useita kertoja. Ne auttavat paljon sellaisten palvelimien hallinnassa, joilla on vain komentoriviliitäntä vuorovaikutuksessa järjestelmän kanssa. Toivottavasti tämä opas oli hyödyllinen, ja jos sinulla on jotain lisättävää tai haastetta niiden käytön aikana, älä epäröi lähettää kommenttia.