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: root@export [13291]: tail -f /var/log/mysql/mysql.log [0]
Dec 7 22:13:09 validationdb2 mahasan: root@export [13291]: ls -lh [0]
Dec 7 22:13:27 validationdb2 mahasan: root@export [13291]: touch test command [0]