In questa guida vedremo come utilizzare a sceneggiatura e scriptreplay comandi in Linux che possono aiutarti a registrare i comandi e il loro output stampato sul tuo terminale durante una determinata sessione.
Il comando storico è un'ottima utility da riga di comando che aiuta gli utenti a memorizzare il comando precedente utilizzato, sebbene non memorizzi l'output di un comando.
Da non perdere:Showterm.io – Uno strumento di registrazione del terminale Linux
Da non perdere:8 migliori registratori dello schermo desktop per Linux
Quindi, il sceneggiatura comando è utile per fornirti una potente funzionalità che ti aiuta a registrare tutto ciò che è stampato sul tuo terminale su a file_log. Puoi quindi fare riferimento a questo file in seguito nel caso in cui desideri visualizzare l'output di un comando nella cronologia dal file_log.
Puoi anche riprodurre i comandi che hai registrato usando il scriptreplay comando utilizzando un'informazione di temporizzazione.
Il sceneggiatura Il comando memorizza le attività del terminale in un file di registro che può essere nominato da un utente, quando un nome non è fornito da un utente, il nome del file predefinito, dattiloscritto viene usato.
# script [opzioni] - -timing=timing_file log_filename.
Per avviare la registrazione del terminale Linux, digitare sceneggiatura e aggiungi il log nome del file come mostrato.
[e-mail protetta] ~ $script history_log.txtScript avviato, il file è history_log.txt
Fermare sceneggiatura, genere Uscita e premi [Accedere].
[e-mail protetta] ~ $UscitaScript fatto, il file è history_log.txt
Se lo script non può scrivere nel file di registro denominato, mostra un errore.
Ad esempio, nell'output seguente, i permessi del file dattiloscritto non consente la lettura, la scrittura e l'esecuzione del file non da parte di alcun utente o gruppo. Quando esegui il comando script senza un nome di file di registro, tenta di scrivere nel file predefinito, dattiloscritto quindi mostrando un errore.
[e-mail protetta] ~ $ls -l dattiloscritto 1 ubuntu ubuntu 144 set 15 00:00 dattiloscritto[e-mail protetta] ~ $sceneggiaturascript: apertura fallita: dattiloscritto: Permesso negatoTerminato
Ho chiamato il mio file di registro script.log nell'esempio seguente, puoi dare al tuo file un nome diverso.
[e-mail protetta] ~ $script script.log
Ora prova a eseguire alcuni comandi per consentire allo script di registrare i comandi eseguiti sul terminale.
[e-mail protetta] ~ $cal Settembre 2015 Do Lu Ma Me Gi Ve 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 [e-mail protetta] ~ $w 14:49:40 su 4:06, 2 utenti, media di carico: 1.37, 1.56, 1.62. UTENTE TTY DA [e-mail protetta] IDLE JCPU PCPU CHE COSA. tecmint tty8 :0 10:45 4:06m 7:40 0,36s x-session-manager. tecmint punti/5 :0 13:42 4,00 s 0,07 s 0,00 s script script.log [e-mail protetta] ~ $uptime 14:49:43 su 4:06, 2 utenti, media di carico: 1.37, 1.56, 1.62 [e-mail protetta] ~ $chi sono tecnica [e-mail protetta] ~ $echo 'usando lo script' usando lo script. [e-mail protetta] ~ $Uscita Uscita. Script fatto, il file è script.log.
Ora prova a visualizzare il file di registro "script.log' per tutti i comandi registrati, mentre visualizzi il log ti rendi conto che lo script memorizza anche feed di riga e backspace.
[e-mail protetta] ~ $vi script.log
^[[0m^[[255D^[[01;[e-mail protetta]^[[01;34 milioni ~ $^[[00 milioni cal^M settembre 2015 ^M. Su Mo Ma Me Gi Ve 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;32mtecmi[e-mail protetta]^[[01;34 milioni ~ $^[[00 milioni con^M 14:49:40 su 4:06, 2 utenti, carico medio: 1,37, 1,56, 1,62^M. UTENTE TTY DA [e-mail protetta] MINIMO JCPU PCPU COSA^M. tecmint tty8 :0 10:45 4:06m 7:40 0,36s x-session-manager^M. tecmint punti/5 :0 13:42 4,00 s 0,07 s 0,00 s script script.log^M. ^[[01;[e-mail protetta]^[[01;34 milioni ~ $^[[00 milioni di tempo di attività^M 14:49:43 su 4:06, 2 utenti, carico medio: 1,37, 1,56, 1,62^M. ^[[01;[e-mail protetta]^[[01;34 milioni ~ $^[[00 milioni whoami^M. tecmint^M. ^[[01;[e-mail protetta]^[[01;34m ~ $^[[00m echo ''^Hu'^Hs'^Ciao'^Hn'^Hg'^H '^Hs'^Hc'^Hr'^Ciao'^Hp'^Ht '^H^M. usando script^M. ^[[01;[e-mail protetta]^[[01;34m ~ $^[[00m uscita^M. exit^M Script eseguito mercoledì 16 settembre 2015 14:49:59 IST. ~
Puoi usare il -un opzione per aggiungere il file di registro o dattiloscritto, mantenendo i contenuti precedenti.
[e-mail protetta] ~ $script -a script.log Script avviato, il file è script.log [e-mail protetta] ~ $Data Mer Sep 16 14:59:36 IST 2015 [e-mail protetta] ~ $pwd /home/tecmint [e-mail protetta] ~ $dov'è lo script script: /usr/bin/script /usr/bin/X11/script /usr/share/man/man1/script.1.gz [e-mail protetta] ~ $cos'è lo script script (1) - crea dattiloscritto della sessione del terminale.
Visualizza il contenuto dello script, accedi dopo l'uso -un opzione per aggiungerlo.
[e-mail protetta] ~ $vi script.log
^[[0m^[[255D^[[01;[e-mail protetta]^[[01;34 mln ~ $^[[00 mln data^M. Mer 16 set 14:59:36 IST 2015^M. ^[[01;[e-mail protetta]^[[01;34m ~ $^[[00m pwd^M. /home/tecmint^M. ^[[01;[e-mail protetta]^[[01;34m ~ $^[[00m dove^H^[[K^H^[[Scrittura di Kereis^M. script: /usr/bin/script /usr/bin/X11/script /usr/share/man/man1/script.1.gz^M. ^[[01;[e-mail protetta]^[[01;34m ~ $^[[00m whatis script^M. script (1) - crea dattiloscritto di sessione terminale^M. ^[[01;[e-mail protetta]^[[01;34m ~ $^[[00m vi s^H^[[K^H^[[K^H^[[K^H^[[Kexit^M. esci^M.
Per registrare i risultati di un singolo comando diverso da una sessione di shell interattiva, utilizzare il pulsante -C opzione.
[e-mail protetta] ~ $script -c 'nome host' script.log Script avviato, il file è script.log. tecmint.com. Script fatto, il file è script.log.
Se vuoi che lo script venga eseguito in modalità silenziosa, puoi usare il -Q opzione. Non vedrai un messaggio che mostra l'avvio o l'uscita dello script.
[e-mail protetta] ~ $script -c 'chi' -q script.logtecmint tty8 2015-09-16 10:45 (:0) tecmint punti/5 2015-09-16 13:42 (:0)
Per impostare le informazioni di temporizzazione sull'errore standard o su un file, utilizzare il pulsante –temporizzazione opzione. Le informazioni sui tempi sono utili quando si desidera visualizzare nuovamente l'output memorizzato nel log_file.
Avviamo lo script ed eseguiamo i seguenti comandi w, uptime e cal da registrare.
[e-mail protetta] ~ $script --timing=time.txt script.log Script avviato, il file è script.log [e-mail protetta] ~ $w 15:09:31 su 4:26, 2 utenti, media di carico: 1,38, 1,39, 1,47. UTENTE TTY DA [e-mail protetta] IDLE JCPU PCPU CHE COSA. tecmint tty8 :0 10:45 4:26m 8:15 0,38s x-session-manager. tecmint punti/5 :0 13:42 3,00 s 0,09 s 0,00 s script --timing=time.txt script.log [e-mail protetta] ~ $uptime 15:09:36 su 4:26, 2 utenti, media di carico: 1.43, 1.40, 1.48 [e-mail protetta] ~ $cal Settembre 2015 Do Lu Ma Me Gi Ve 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
Puoi visualizzare il script.log e ora.txt file per il comando di temporizzazione sopra.
[e-mail protetta] ~ $vi script.log
^[[0m^[[255D^[[01;[e-mail protetta]^[[01;34 milioni ~ $^[[00 milioni con^M 15:12:05 su 4:28, 2 utenti, carico medio: 1,31, 1,37, 1,45^M. UTENTE TTY DA [e-mail protetta] MINIMO JCPU PCPU COSA^M. tecmint tty8 :0 10:45 4:28m 8:20 0,38s x-session-manager^M. tecmint punti/5 :0 13:42 5,00 s 0,09 s 0,00 s script --timing=time.txt script.log^M. ^[[01;[e-mail protetta]^[[01;34m ~ $^[[00m di tempo di attività^M 15:12:07 up 4:28, 2 utenti, carico medio: 1,29, 1,36, 1,45^M. ^[[01;[e-mail protetta]^[[01;34 milioni ~ $^[[00 milioni cal^M settembre 2015 ^M. Su Mo Ma Me Gi Ve 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
Ora guarda ora.txt file.
[e-mail protetta] ~ $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...
Il ora.txt file ha due colonne, la prima colonna mostra quanto tempo è trascorso dall'ultima visualizzazione e la seconda colonna mostra il numero di caratteri che sono stati visualizzati questa volta.
Usa la pagina man e -aiuto per cercare ulteriori opzioni e assistenza nell'utilizzo dell'utilità della riga di comando dello script.
Il scriptreplay comando aiuta a riprodurre le informazioni nel tuo file_log registrato dal sceneggiatura comando.
Le informazioni sui tempi sono definite dal -timing=file opzione utilizzata con il sceneggiatura comando e file in questo caso è file.txt che è stato utilizzato con il comando script.
Ricorda che devi specificare il file_log hai usato con il comando script.
Riproduciamo ora gli ultimi tre comandi w, uptime e cal che avevamo eseguito come segue.
[e-mail protetta] ~ $scriptreplay --timing=time.txt script.log
Quando il file_log riprodotti utilizzando le informazioni di temporizzazione, i comandi registrati vengono eseguiti e il loro output viene visualizzato nello stesso momento in cui è stato visualizzato l'output originale durante la registrazione.
Questi due comandi, sceneggiatura e scriptreplay facile da usare e di grande aiuto quando è necessario eseguire lo stesso batch di comandi più volte. Aiutano molto nella gestione dei server che hanno solo un'interfaccia a riga di comando per l'interazione con il sistema. Spero che questa guida sia stata utile e se hai qualcosa da aggiungere o affrontare una sfida durante l'utilizzo, non esitare a pubblicare un commento.