如何让AIX,LINUX的History命令显示执行时间

如何让AIX,LINUX的History命令显示执行时间,第1张

LINUX用户登录后精确命令记录(history 按时间、用户显示命令记录)

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

export HISTFILESIZE=10000000

# 保存历史命令条数

export HISTSIZE=1000000

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

export PROMPT_COMMAND="history -a"

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

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

备:%Y:4位数的年份;%m:2位数的月份数;%d:2位数的一个月中的日期数;%H:2位数的小时数(24小时制);%M:2位数的分钟数;%S:2位数的秒数

主要功能:

可以记录哪个ip和时间(精确到秒)作了哪些命令

通过用户登录时候,重新定义HISTFILE

HISTFILE文件名包含登录用户名,ip,登录时间(精确到秒)等

这样即使相同的用户从不同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

得到的结果,永久保存,每个用户的命令记录分目录保存

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

-rw------- 1 root root 546 2006-05-26 10:00 2188224554hist20060526_092458

-rw------- 1 root root 243 2006-05-28 13:28 2188224554hist20060528_114822

-rw------- 1 root root 10 2006-05-28 12:18 2188224554hist20060528_121605

查看命令记录

# export HISTFILE=/var/log/hist/root/2227216204hist20060608_152551

# history

1 [20060624 13:22:51] vi /etc/profile

2 [20060624 13:23:25] cd /var/log/hist

3 [20060624 13:23:26] ls -al

4 [20060624 13:23:30] cd sadmin

5 [20060624 13:23:31] ls -al

6 [20060624 13:24:22] more 583516951hist20060524_193219

7 [20060624 13:24:35] 2227216204hist20060622_143133

8 [20060624 13:24:39] more 2227216204hist20060622_143133

9 [20060624 13:24:51] hist -f 2227216204hist20060622_143133

10 [20060624 13:24:59] history -f 2227216204hist20060622_143133

11 [20060624 13:25:12] history 2227216204hist20060622_143133

12 [20060624 13:25:32] man histtory

13 [20060624 13:25:38] man history

14 [20060624 13:26:00] hist

15 [20060624 13:26:04] history

16 [20060624 13:26:16] ls

17 [20060624 13:26:39] export 2227216204hist20060622_143133

18 [20060624 13:26:59] export HISTFILE=2227216204hist20060608_152551

19 [20060624 13:27:07] history

aix系统中类似timeout的命令是"timex"。该命令用于限制程序执行时间,如果程序在规定时间内未执行完毕,则会被终止。其用法如下:

timex [OPTIONS] COMMAND [ARGS]

其中,OPTIONS为可选参数,COMMAND为要执行的命令,ARGS为命令的参数。timex命令常用的参数包括:

- -t: 指定程序的执行时间限制,单位为秒。

- -v: 显示程序执行的时间信息。

- -o: 将程序执行的时间信息输出到指定文件中。

使用timex命令可以有效地控制程序的执行时间,避免程序因为某种原因进入死循环或长时间占用系统资源,从而导致系统的崩溃或无法正常运行。

以上就是关于如何让AIX,LINUX的History命令显示执行时间全部的内容,包括:如何让AIX,LINUX的History命令显示执行时间、aix类似timeout的命令、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10140187.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存