Para shells BASH, edite o arquivo de configuração de tempo de execução BASH do sistema:
sudo -e /etc/bash.bashrc
Anexar ao final desse arquivo:
export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug "$(whoami) [$$]: $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//" ) [$RETRN_VAL]"'
Configure o registro para "local6" com um novo arquivo:
sudo -e /etc/rsyslog.d/bash.conf
E o conteúdo ...
local6.* /var/log/commands.log
Reinicie o rsyslog:
sudo service rsyslog restart
Faça logout. Faça o login. Voila!
Mas eu esqueci a rotação de log:
sudo -e /etc/logrotate.d/rsyslog
Existe uma lista de arquivos de log para girar da mesma maneira ...
/var/log/mail.warn
/var/log/mail.err
[...]
/var/log/message
Portanto, adicione o novo arquivo de log do bash-commands nessa lista:
/var/log/commands.log
Salvar.