如何让AIX和LINUX的历史命令显示执行时间

LINUX用户登录后的精确命令记录(历史按时间和用户显示命令记录)

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

导出历史文件大小=1000000

#保存历史命令的数量

导出HISTSIZE=1000000

#实时记录历史命令。默认情况下,只有在用户退出后才会统一记录,这很容易导致多个用户之间的相互覆盖。

export PROMPT _ COMMAND = " history-a "

#记录每个历史命令的执行时间

导出历史时间格式="%Y-%m-%d_%H:%M:%S "

注意:%Y:4位数字的年份;%m:两位数的月份;% d:两位数的月份中的天数;% h:两位数的小时(24小时制);% m:两位数的分钟数;% s:两位数秒

主要功能:

你可以记录下哪个ip和时间(精确到秒)发出了哪些命令。

用户登录时重新定义历史文件。

HISTFILE文件名包括登录用户名、ip、登录时间(精确到秒)等。

这样即使同一个用户在不同的时间从不同的ip登录也会被记录下来。

您可以记录每个命令的开始执行时间。

直接在/etc/profile后面粘贴以下代码即可。

#历史

导出历史时间格式="[%Y.%m.%d %H:%M:%S]"

USER _ IP = ` who-u am I 2 & gt;/dev/null | awk“{ print $ NF }”| sed-e ' s/[()]//g ' ` s

HISTDIR=/var/log/。嘘

if[-z $用户IP ]

然后

USER_IP=`hostname '

船方不负担装货费用

如果[!-d $HISTDIR ]

然后

mkdir -p $HISTDIR

chmod 777 $HISTDIR

船方不负担装货费用

如果[!-d $ hist dir/$ {日志名} ]

然后

mkdir -p $HISTDIR/${LOGNAME}

chmod 300 $HISTDIR/${LOGNAME}

船方不负担装货费用

导出历史大小=4096

DT=`date +%Y%m%d_%H%M%S '

export hist file = " $ hist dir/$ {日志名}/$ {用户IP}.hist.$DT "

chmod 600 $HISTDIR/${LOGNAME}/*。hist * 2 & gt/dev/null

得到的结果永久保存,每个用户的命令记录保存在不同的目录中。

# ls -l /var/log/。hist/root/

-rw-1 root root 546 2006-05-26 10:00 218 . 82 . 245 . 54 . hist . 092458

-rw-1 root root 243 2006-05-28 13:28 218 . 82 . 245 . 54 . hist . 2006 05 28 _ 114822

-rw-1 root root 10 2006-05-28 12:18 218 . 82 . 245 . 54 . hist . 2006 05 28 _ 121605

查看命令记录

# export HISTFILE=/var/log/。hist/root/222 . 72 . 16.204 . hist . 2006 06 08 _ 152551

#历史

vi /etc/profile

cd /var/log/。嘘

这是我第一次见到你

萨德明

这是我第一次见到你

6更多58 . 35 . 169 . 51 . hist . 2006 05 24 _ 193219

20060622_143133

更多222 . 72 . 16.204 . hist . 2006 06 22 _ 143133

9[2006 . 06 . 24 13:24:51]历史-f 222.72.16.204 .历史20060622_143133

历史-f 222 . 72 . 16 . 2060622 _ 143133

11[2006 . 06 . 24 13:25:12]历史222 . 72 . 16.204 . hist . 2006 06 22 _ 143133

人工历史

人类历史

历史

历史

这是我第一次见到你

出口222 . 72 . 16.204 . hist . 2006 06 22 _ 143133

导出历史文件= 222 . 72 . 16.206 _ 152551

历史