利用PROMPT_COMMAND记录每个用户执行的历史命令

简介:

在/etc/profile里加入以下几行

1
2
3
export HISTORY_FILE=/var/log/command_history/`date  '+%Y-%m-%d' `.log
export PROMPT_COMMAND= '{ date "+%Y-%m-%d %T ##### $(who am i |awk "{print \$1\" \"\$2\" \"\$5}")  #### $(history 1 | { read x cmd; echo "$cmd"; })"; } >> $HISTORY_FILE'
chmod a+w  $HISTORY_FILE     给所有用户加写权限


1
2
3
4
export HISTORY_FILE=/var/log/command_history/`date  '+%Y-%m-%d' `.log
export PROMPT_COMMAND= '{ date "+%Y-%m-%d %T $(history 1 | { read x cmd; echo "$cmd USER:$USER FROM IP:$SSH_CLIENT PS:$SSH_TTY"; })"; } >>$HISTORY_FILE'
 
export PROMPT_COMMAND= '{ date "+[ %Y%m%d %H:%M:%S `whoami` ] `history 1 | { read x cmd; echo "$cmd      USER:$USER from ip:$SSH_CLIENT   $SSH_TTY"; }`"; } >> /root/test.log'

1
export  PROMPT_COMMAND= '{ date "+%Y-%m-%d %T  $(who am i |awk "{print \$1\" \"\$2\" \"\$5}")   $(history 1 | { read x cmd; echo "$cmd"; })"; } >> /tmp/`date "+%F"`.`hostname`.`whoami`.history-timestamp'

1
export  PROMPT_COMMAND= '{ msg=$(history 1 | { read x y; echo $y; });user=$(whoami);echo $(date "+%F %H:%M:%S"):$user:`pwd`/:$msg ---- $(who am i); } >> /tmp/`date "+%F"`.`hostname`.`whoami`.history-timestamp'

添加完成,保存退出,然后使用如下的命令使之生效:

#. /etc/profile


# source /etc/profile

注意:如果没有报错说明成功了。

然后每个用户执行的历史命令就会存在以当前日期命名的log文件中。




本文转自 xoyabc 51CTO博客,原文链接:http://blog.51cto.com/xoyabc/1658267,如需转载请自行联系原作者

相关文章
|
Shell 数据安全/隐私保护
执行jobs命令查看不到任务的原因终于找到了
背景 执行nohup command &后,断开终端,执行jobs命令查看不到任务的原因,终于找到了。 首先执行完如下步骤: 1.nohup scp user@server:path/file localpath 2.输入密码 3.按Ctrl+Z挂起当前进程 4.使用命令bg让挂起的进程继续运行
|
6月前
|
存储 安全 Linux
LINUX下用CTRL+R快速搜索HISTORY历史命令,快速索引到之前使用过的命令行语句
LINUX下用CTRL+R快速搜索HISTORY历史命令,快速索引到之前使用过的命令行语句
|
6月前
|
前端开发 JavaScript
empty来显示暂无数据简直太好用,阻止用户复制文本user-select
empty来显示暂无数据简直太好用,阻止用户复制文本user-select
|
移动开发 测试技术
pytest学习和使用24-如何清空allure报告历史记录?我每次都手动删除,有点Low了~
pytest学习和使用24-如何清空allure报告历史记录?我每次都手动删除,有点Low了~
122 0
pytest学习和使用24-如何清空allure报告历史记录?我每次都手动删除,有点Low了~
|
Oracle 关系型数据库 数据库
在SQLPlus中实现上下键翻查历史命令的功能
Oracle当然是世界上最强大的数据库,但它的客户端sqlplus真的不友好,现在还不能支持上下方向键翻查历史命令,这里介绍使用readline和rlwrap实现这个功能的方法。
|
测试技术
Pytest 系列(26)- 清空 allure 历史报告记录
Pytest 系列(26)- 清空 allure 历史报告记录
572 0
Pytest 系列(26)- 清空 allure 历史报告记录
|
安全 Linux
5 种方法重复执行历史命令
5 种方法重复执行历史命令
227 0
Confluence 6.15 修改历史(Change-History)宏
修改历史(Change-History)宏显示了页面一个的更新历史:版本号,作者,日期和备注。这些内容将会在同一栏中进行显示。 屏幕截图:Confluence 中的修改历史(Change-History)宏 为了向页面中插入修改历史宏:  从编辑工具栏中,选择 插入(Insert)   > 其他宏(Other Macros)找到并且选择需要的宏。
819 0