Como faço para registrar todas as entradas e saídas em uma sessão de terminal?

36

Como faço para manter registros de todo o trabalho realizado via terminal? Por exemplo, eu quero um registro de todo o trabalho feito no banco de dados via terminal.

    
por Ankit 10.07.2012 / 12:58

3 respostas

48

Quando você estiver pronto para começar a gravar um arquivo de log, digite:

script screen.log

Agora, até que você pare o script, todas as entradas e saídas no Terminal serão armazenadas em screen.log. Quando terminar, basta digitar:

exit

Seu arquivo screen.log será armazenado no diretório local. Se você quiser redirecioná-lo, use um nome de caminho absoluto, como ~/screen.log . Isso fará exatamente o que você está procurando.

Fonte: Guia do Ubuntu - Como registrar Comandos de terminal

    
por xlukasx 10.07.2012 / 13:21
8

Você pode querer experimentar Asciinema . Além de fazer uma gravação, você pode compartilhá-la e incorporar o player em seu blog, artigo ou em uma conferência.

    
por sickill 15.11.2013 / 17:04
5

Eu tenho uma maneira melhor de usar o syslog para registrar cada comando shell que pode variar na distribuição do Linux, mas o método permanecerá igual

Você precisa seguir alguns passos:

Etapa 1 (criar serviço Syslog)

# vim /etc/rsyslog.d/bash.conf

local6.*    /var/log/commands.log

Passo # 2 (abra bashrc e digite o comando abaixo)

# vim /root/.bashrc

# Enable CLI Logging by Mansur 08-12-2016 
whoami="$(whoami)@$(echo $SSH_CONNECTION | awk '{print }')"export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug "$whoami [$$]: $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//" ) [$RETRN_VAL]"'

Ste # 3 (Reinicie o serviço Syslog)

# /etc/init.d/rsyslog

Aqui está um exemplo de registro:

Dec  7 22:13:00 validationdb2 mahasan: [email protected] [13291]: tail -f /var/log/mysql/mysql.log [0]
Dec  7 22:13:09 validationdb2 mahasan: [email protected] [13291]: ls -lh [0]
Dec  7 22:13:27 validationdb2 mahasan: [email protected] [13291]: touch test command  [0]
    
por Mansur Ali 08.12.2016 / 08:17