我需要重新设置history命令,以显示用户登录到我们服务器并执行特定命令的日期,时间和IP地址。有没有办法用history命令显示这些信息?
样本输出将是:
Sat 04 Nov 2017 06:20:20 AM +03 111.111.111.111 : pwd
Sat 04 Nov 2017 06:20:20 AM +03 111.123.123.111 : mkdir test
Sat 04 Nov 2017 06:20:20 AM +03 123.123.44.32 : pwd
帮助我通过.bash_profile或.bashrc
设置这些更改答案 0 :(得分:1)
虽然您可以通过设置HISTTIMEFORMAT
来打开Bash历史记录中的时间戳,但不能将字符串作为历史文件的每一行的前缀。您可以通过维护自己的历史文件来使用DEBUG陷阱来实现目标:
save_history() {
# make sure IP is set in .bash_profile instead of capturing it each time here
printf '%s : %s : %s\n' "$(date)" "$IP" "$BASH_COMMAND" >> /path/to/history_file
}
trap save_history DEBUG
这样,save_history
函数在每个命令之前被调用,并将历史记录记录在文件中。
另见: