Bash 4.1能够将历史logginglogging到syslog中。 但是,我似乎无法使其在FreeBSD 8下工作。
我已经尝试使用-DWITH_SYSLOG=重新编译端口的bash,但无济于事。 有没有人设法让日志在FreeBSD下工作? 如何Linux?
更好的做法是打开审计,这将允许您logging每个命令运行,而不pipe他们正在使用的shell。
尝试这个:
export HISTTIMEFORMAT="%Y-%m-%d %T " export PROMPT_COMMAND='trap "" 1 2 15; history -a >(tee -a ~/.bash_history | while read line; do if [[ $line =~ ^#[0-9]*$ ]]; then continue; fi; logger -p user.info -t "bash[$$]" "($USER) $line"; done); trap 1 2 15;'
这会进行日志logging,并阻止logging用于bash历史logging文件的时间戳记。 陷阱是必要的,因为bash将多次按下strg + c后发送信号给“subjob”(用bash 4.3testing)。 这将强制注销当前用户(例如使用sudologin)