vim /etc/profile
export HISTTIMEFORMAT="%F %T "
export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug "$(whoami) $(pwd) $SSH_CLIENT $(history 1 | sed "s/^[ ]*[0-9]\+\[ ]*//" ) [$RETRN_VAL]"'
readonly PROMPT_COMMAND
export PROMPT_COMMAND='...'
:
- 将
PROMPT_COMMAND
变量导出,使其在当前 shell 及其子进程中可用。
RETRN_VAL=$?
:
- 获取上一个命令的返回值,并存储在
RETRN_VAL
变量中。$?
是一个特殊变量,表示上一个命令的退出状态。
logger -p local6.debug "$(whoami) ..."
:
- 使用
logger
命令将信息记录到系统日志中。-p local6.debug
指定日志级别和设施。
$(whoami)
获取当前用户的用户名。
$(history 1 | sed "s/^[ ]*[0-9]\+\[ ]*//")
:
history 1
获取最近的一条命令。
sed "s/^[ ]*[0-9]\+\[ ]*//"
用于删除命令前的历史编号和空格,只保留命令本身。
[$RETRN_VAL]
:
vim /etc/rsyslog.d/history.conf
local6.debug /var/log/users-command.log