让history记录命令运行的时间

2011年09月05日 Linux基础 评论 7 条 阅读 12,334 views 次

某些时候,可能会用到记录命令的执行时间的问题,所以在这里来给大家介绍一下

编辑/etc/bashrc,添加以下配置信息:

# 让系统记录每条历史命令的执行时间。注意最后的"号前面要放个空格,否则时间就与命令在一起,不方便也不美观

export HISTTIMEFORMAT="%Y-%m-%d_%H:%M:%S "

# 以下是关于记录文件大小与命令条数的设置,根据需要来设置

# 设置保存历史命令的文件大小

export HISTFILESIZE=1000000

# 保存历史命令条数

export HISTSIZE=2000

 

执行下面的命令使配置立即生效:

source /etc/bashrc

 

再次查看历史命令记录:

history

history

7 条留言  访客:4 条  博主:3 条

  1. 您好~這個功能正好是我需要的~ 想請問一下~不知道有沒有辦法知道是從哪台機器連上來下指令的呢?

    • 这个要结合日志来看了吧!!

      • avatar Trx

        所以無法使用任何的參數來得知是哪台機器或哪個使用者連上來下指令的囉~要透過跟日志比對才有辦法查的到嗎?

        • 下面的方法是记录哪个IP和时间做了哪些的操作(非本人原创)。
          把下面的内容直接贴到/etc/profile的最后面。

          #history
          export HISTTIMEFORMAT=”[%Y.%m.%d %H:%M:%S]”
          USER_IP=`who -u am i 2>/dev/null| awk ‘{print $NF}’|sed -e ‘s/[()]//g’`
          HISTDIR=/var/log/.hist
          if [ -z $USER_IP ]
          then
          USER_IP=`hostname`
          fi
          if [ ! -d $HISTDIR ]
          then
          mkdir -p $HISTDIR
          chmod 777 $HISTDIR
          fi
          if [ ! -d $HISTDIR/${LOGNAME} ]
          then
          mkdir -p $HISTDIR/${LOGNAME}
          chmod 300 $HISTDIR/${LOGNAME}
          fi
          export HISTSIZE=4096
          DT=`date +%Y%m%d_%H%M%S`
          export HISTFILE=”$HISTDIR/${LOGNAME}/${USER_IP}.hist.$DT”
          chmod 600 $HISTDIR/${LOGNAME}/*.hist* 2>/dev/null

          然后你测试一下效果,或者是更改代码以实现您想要的效果!

给我留言

Copyright © 羽飞博客 保留所有权利.   Ality主题 皖ICP备14013844号-1

用户登录