como posso gravar automaticamente cada sessão de terminal?

1

Eu gosto de usar ferramentas como history , script e asciinema para registrar e revisar sessões xterm (ou seja, bash / sh ) para motivos típicos de administração geral e também, às vezes, para estudo / revisão; como uma ferramenta de aprendizado.

  • Eu pensei em definir o padrão $SHELL como um caminho direto para as ferramentas e / ou comandos, como:

    • /bin/script transcript.log;
    • /bin/asciinema rec -w0.5 term_log.json;
  • Mas essas ferramentas normalmente contam com um $SHELL definido padrão (por exemplo, /bin/bash , /bin/sh , /bin/zsh , etc.).

  • Além disso, sinto que redefinir as variáveis do sistema (ou seja, $SHELL , $TERM , etc.) ou tentar fazê-lo funcionar com config ( *.conf ) e dot ( ~/.bashrc / ~/.bash_profile ) arquivos estão repletos de todos os tipos de falhas e possíveis problemas.

  • No entanto, toda vez que eu decido ou percebo que quero uma transcrição de uma sessão, é após o fato, ou já estarei na metade da parte interessante, ou em algum outro cenário.

Qual é a prática correta ou melhor para definir algo assim para simplesmente registrar tudo (preferencialmente stdin , stdout (e stderr quando aplicável), etc.) automaticamente?

    
por tjt263 25.09.2016 / 11:11

1 resposta

1

Algo parecido com isso no seu .bash_profile ou .bashrc pode funcionar para você:

if test -t 0 -a -t 1 -a -z "$SCRIPTING"
then
    export SCRIPTING="$HOME/.script.$(date +%Y%m%d_%H%M%S).$$)"
    exec script "$SCRIPTING"
fi
    
por 25.09.2016 / 23:36