代码之家  ›  专栏  ›  技术社区  ›  stacker

如何记录服务器上所有用户的所有Bash(busybox/ash)命令?

  •  0
  • stacker  · 技术社区  · 7 年前

    我们如何在本地记录所有Bash命令的运行,以及用户和时间戳?

    我正在寻找一种用我自己的别名和诸如此类的东西来定制Ash会话的方法。什么是Bash的灰当量 bashrc 文件夹?

    标准溶液不起作用:

    export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug "$(whoami) [$$]: $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//" ) [$RETRN_VAL]"'
    
    • 操作系统:linux 4.9
    • bash:。灰
    • 记录器:busybox(1.27.2)和;syslog ng(3.10)
    1 回复  |  直到 7 年前
        1
  •  0
  •   T k    7 年前

    这是为rsyslog准备的:

    1. 编辑/etc/rsyslog。然后排成一行

      local6.*                                  /var/log/mylog
      
    2. 例如,在/etc/profile中导出PS1而不是提示符_命令:

      export PS1='$(RETRN_VAL=$?;logger -p local6.debug "[$$]: $(history | tail -1) [$RETRN_VAL]")\u@\h:\w\$ '
      

    当然,您可以更改命令,以从历史输出中删除不必要的字符。

    推荐文章