Como gravar e reproduzir sessões de terminal Linux usando comandos 'script' e 'scriptreplay'

Como gravar e reproduzir sessões de terminal Linux usando comandos 'script' e 'scriptreplay'

Neste guia, vamos ver como usar um roteiro e ScripTreplay Comandos no Linux que podem ajudá -lo a gravar comandos e sua saída impressa em seu terminal durante uma determinada sessão.

Gravar e reproduzir comandos do terminal Linux

O Comando History é um ótimo utilitário de linha de comando que ajuda os usuários a armazenar o comando anterior usado, embora não armazene a saída de um comando.

Não perca: Showterm.io - uma ferramenta de gravação de terminal Linux

Não perca: 8 melhores gravadores de tela de desktop para Linux

Portanto, o roteiro O comando é útil para fornecer uma funcionalidade poderosa que ajuda você a gravar tudo o que é impresso no seu terminal para um arquivo de log. Você pode se referir a este arquivo mais tarde, caso queira ver a saída de um comando na história do arquivo de log.

Você também pode reproduzir comandos que você gravou usando o ScripTreplay comando usando uma informação de tempo.

Como gravar o terminal Linux usando o comando de script

O roteiro O comando armazena atividades de terminal em um arquivo de log que pode ser nomeado por um usuário, quando um nome não é fornecido por um usuário, o nome do arquivo padrão, TypeScript é usado.

Sintaxe básica do comando de script
# script [options] - -timing = timing_file log_filename 

Para começar a gravar o terminal Linux, digite roteiro e adicione o log nome do arquivo como mostrado.

[Email protegido] ~ $ Script History_log.TXT Script iniciado, o arquivo é history_log.TXT 

Parar roteiro, tipo saída e pressione [Digitar].

[Email protegido] ~ $ saída Script feito, o arquivo é histórico_log.TXT 

Se o script não puder escrever no arquivo de log nomeado, ele mostrará um erro.

Por exemplo, na saída abaixo, as permissões do arquivo TypeScript não permite leitura, escrita e execução do arquivo não por nenhum usuário ou grupo. Quando você executa o comando de script sem um nome de arquivo de log, ele tenta gravar no arquivo padrão, TypeScript Portanto, mostrando um erro.

[Email protegido] ~ $ LS -L TypeScript --------- 1 Ubuntu Ubuntu 144 15 de setembro 00:00 [Email protegido] ~ $ roteiro Script: Falha aberta: TypeScript: permissão negada Terminado 

Exemplos de uso do comando de script

Eu nomeei meu arquivo de log roteiro.registro No exemplo abaixo, você pode dar ao seu arquivo um nome diferente.

[Email protegido] ~ $ script script.registro 

Agora tente executar poucos comandos para permitir que o script registre comandos executados no terminal.

[Email protegido] ~ $ cal Setembro de 2015 Su Mo Tu the Fr SA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 23 24 25 26 27 28 29 30 [Email protegido] ~ $ c 14:49:40 UP 4:06, 2 usuários, Carregar Média: 1.37, 1.56, 1.62 Usuário tty de [Email Protected] Idle JCPU PCPU O que 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.registro [Email protegido] ~ $ tempo de atividade 14:49:43 UP 4:06, 2 usuários, Carregar Média: 1.37, 1.56, 1.62 [Email protegido] ~ $ Quem sou eu Tecmint [Email protegido] ~ $ eco 'usando script' usando script [Email protegido] ~ $ saída Script de saída feito, o arquivo é script.registro 

Agora tente ver o arquivo de log 'roteiro.registro'Para todos os comandos gravados, enquanto você vê o log, você percebe que o script também armazena feeds de linha e backspaces.

[Email protegido] ~ $ VI Script.registro 
Saída de amostra
^[[0m^[[255d^[[01; [email protegido]^[[01; 34m ~ $^[[00M Cal^m setembro de 2015^M su mo tu the fr sa^M 1 2 3 4 5 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; [[01; Email protegido]^[[01; 34m ~ $^.37, 1.56, 1.62^M User tty de [Email Protected] IDLE JCPU PCPU O QUE^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 protegido]^[[01; 34m ~ $^.37, 1.56, 1.62^m^[[01; [email protegido]^[[01; 34m ~ $^ 00m echo "^Hu '^hs'^hi '^hn'^hg '^h'^hs '^hc'^hr '^hi'^hp '^ht'^h^m usando script^m^[[[ 01; [email protegido]^[[01; 34m ~ $^[[00M Exit^m Script^m Script Feito na quarta -feira, 16 de setembro de 2015 02:49:59 IST ~ 

Você pode usar o -a Opção para anexar o arquivo de log ou o tipscript, mantendo o conteúdo anterior.

[Email protegido] ~ $ Script -Um script.registro Script iniciado, o arquivo é script.registro [Email protegido] ~ $ data Qua 16 de setembro 14:59:36 IST 2015 [Email protegido] ~ $ PWD /Home/Tecmint [Email protegido] ~ $ Whereis Script script:/usr/bin/script/usr/bin/x11/script/usr/share/man/man1/script.1.gz [Email protegido] ~ $ Whatis Script Script (1) - Faça o datilografript da sessão terminal 

Veja o conteúdo do script, registre depois de usar -a opção para anexá -lo.

[Email protegido] ~ $ VI Script.registro 
Saída de amostra
^[[0m^[[255d^[[01; [email protegido]^[[01; 34m ~ $^[[00M Data^m Wed 16 14:59:36 IST 2015^M^[[01; email protegido]^[[01; 34m ~ $^[[00m pwd^m /home /tecmint^m^[[01; [email protegido]^[[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 protegido]^[[01; 34m ~ $^ [[01; 34m ~ $^[[00M VI S^H^[[K^H^[[K^H^ 

Para registrar os resultados de um único comando que não seja uma sessão interativa de shell, use o -c opção.

[Email protegido] ~ $ script -c 'hostname' script.registro Script iniciado, o arquivo é script.Log Tecmint.com script feito, o arquivo é script.registro 

Se você deseja que o script seja executado em um modo silencioso, você pode usar o -q opção. Você não verá uma mensagem que mostra que o script está começando ou saindo.

[Email protegido] ~ $ Script -C 'Who' -q Script.registro Tecmint Tty8 2015-09-16 10:45 (: 0) Tecmint PTS/5 2015-09-16 13:42 (: 0) 

Para definir informações de tempo como erro padrão ou um arquivo, use o -tempo opção. As informações de tempo são úteis quando você deseja exibir novamente a saída armazenada no log_file.

Vamos iniciar o script e executar os seguintes comandos c, tempo de atividade e cal a ser gravado.

[Email protegido] ~ $ script - -timing = tempo.script txt.registro Script iniciado, o arquivo é script.registro [Email protegido] ~ $ c 15:09:31 UP 4:26, 2 usuários, Carregar Média: 1.38, 1.39, 1.47 Usuário tty de [email protegido] inativo 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 = tempo.script txt.registro [Email protegido] ~ $ tempo de atividade 15:09:36 UP 4:26, 2 usuários, Carregar média: 1.43, 1.40, 1.48 [Email protegido] ~ $ cal Setembro de 2015 Su Mo Tu the Fr SA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 23 24 25 26 27 28 29 30 

Você pode ver o roteiro.registro e tempo.TXT Arquive o comando de tempo acima.

[Email protegido] ~ $ VI Script.registro 
Saída de amostra
^[[0m^[[255d^[[01; [email protegido]^[[01; 34m ~ $^[[00M w^m 15:12:05 UP 4:28, 2 usuários, média de carga: 1.31, 1.37, 1.45^M User tty de [Email Protected] Idle JCPU PCPU O QUE^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 = tempo.script txt.log^m^[[01; [email protegido]^[[01; 34m ~ $^.29, 1.36, 1.45 ^m ^[[01; [email protegido] ^[[01; 34m ~ $ ^[[00M Cal ^m setembro de 2015 ^m Su Mo tu TH TH 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 ^m ^m 

Agora veja tempo.TXT arquivo.

[Email protegido] ~ $ vi tempo.TXT 
Saída de amostra
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… 

O tempo.TXT O arquivo possui duas colunas, a primeira coluna mostra quanto tempo foi decorrido desde a última exibição e a segunda coluna, mostra o número de caracteres que foram exibidos desta vez.

Use a página do homem e -ajuda Procurar mais opções e ajudar no uso do utilitário de linha de comando de script.

Usando o scriptreplay para reproduzir scripts usando informações de tempo

O ScripTreplay o comando ajuda a reproduzir informações em seu arquivo de log gravado pelo roteiro comando.

As informações de tempo são definidas pelo -timing = arquivo opção usada com o roteiro comando e arquivo neste caso é arquivo.TXT que foi usado com o comando de script .

Lembre -se de que você precisa especificar o arquivo de log você usou com o comando de script.

Vamos agora repetir os três últimos comandos c, tempo de atividade e cal que tínhamos corado o seguinte.

[Email protegido] ~ $ scriptreplay - -timing = tempo.script txt.registro 
Reproduzir os comandos executados pela última vez no Linux

Quando o arquivo de log Reproduzido usando as informações de tempo, os comandos gravados são executados e sua saída é exibida ao mesmo tempo em que a saída original foi exibida ao ser gravada.

Resumo

Esses dois comandos, roteiro e ScripTreplay fácil de usar e ajudar muito quando você precisa executar o mesmo lote de comandos várias vezes. Eles ajudam muito a gerenciar servidores que possuem apenas interface da linha de comando para interação com seu sistema. Espero que este guia tenha sido útil e se você tiver alguma coisa para adicionar ou enfrentar um desafio ao usá -los, não hesite em postar um comentário.