Como mantenho 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.
Como mantenho 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.
Respostas:
Quando você estiver pronto para começar a gravar um arquivo de log, digite:
script screen.log
Agora, até você interromper o script, todas as entradas e saídas no Terminal serão armazenadas em screen.log. Quando terminar, digite:
exit
Seu arquivo screen.log será armazenado no diretório local. Se você deseja redirecioná-lo, use um nome de caminho absoluto como ~/screen.log
. Isso fará exatamente o que você está procurando.
man script
) sequer menciona vi
(editor) ...
Eu tenho uma maneira melhor de usar o syslog para registrar todos os comandos do shell, isso pode variar de acordo com a distribuição linux, mas o método permanecerá o mesmo
Você precisa seguir alguns passos:
Etapa 1 (Criar serviço Syslog)
# vim /etc/rsyslog.d/bash.conf
local6.* /var/log/commands.log
Etapa 2 (Abra o bashrc e digite o comando abaixo)
# vim /root/.bashrc
# Enable CLI Logging by Mansur 08-12-2016
whoami="$(whoami)@$(echo $SSH_CONNECTION | awk '{print $1}')"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 log:
7 de dezembro 22:13:00 validationdb2: root @ export [13291]: tail -f /var/log/mysql/mysql.log [0] 7 de dezembro às 22:13:09 validationdb2: root @ export [13291]: ls -lh [0] 7 de dezembro 22:13:27 validationdb2: root @ export [13291]: touch test command [0]