如何让AIX,LINUX的History命令显示执行时间
发布网友
发布时间:2022-04-23 08:08
我来回答
共1个回答
热心网友
时间:2022-05-26 00:57
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 218.82.245.54.hist.20060526_092458
-rw------- 1 root root 243 2006-05-28 13:28 218.82.245.54.hist.20060528_114822
-rw------- 1 root root 10 2006-05-28 12:18 218.82.245.54.hist.20060528_121605
查看命令记录
# export HISTFILE=/var/log/.hist/root/222.72.16.204.hist.20060608_152551
# history
1 [2006.06.24 13:22:51] vi /etc/profile
2 [2006.06.24 13:23:25] cd /var/log/.hist
3 [2006.06.24 13:23:26] ls -al
4 [2006.06.24 13:23:30] cd sadmin
5 [2006.06.24 13:23:31] ls -al
6 [2006.06.24 13:24:22] more 58.35.169.51.hist.20060524_193219
7 [2006.06.24 13:24:35] 222.72.16.204.hist.20060622_143133
8 [2006.06.24 13:24:39] more 222.72.16.204.hist.20060622_143133
9 [2006.06.24 13:24:51] hist -f 222.72.16.204.hist.20060622_143133
10 [2006.06.24 13:24:59] history -f 222.72.16.204.hist.20060622_143133
11 [2006.06.24 13:25:12] history 222.72.16.204.hist.20060622_143133
12 [2006.06.24 13:25:32] man histtory
13 [2006.06.24 13:25:38] man history
14 [2006.06.24 13:26:00] hist
15 [2006.06.24 13:26:04] history
16 [2006.06.24 13:26:16] ls
17 [2006.06.24 13:26:39] export 222.72.16.204.hist.20060622_143133
18 [2006.06.24 13:26:59] export HISTFILE=222.72.16.204.hist.20060608_152551
19 [2006.06.24 13:27:07] history
如何让AIX,LINUX的History命令显示执行时间
AIX:用ROOT用户VI,添加EXTENDED_HISTORY=ON至/etc/environment即可 LINUX:如果你想要查看命令历史的时间戳,那么可以执行:export HISTTIMEFORMAT='%F %T 'history | more 1 2008-08-05 19:02:39 service network restart 2 2008-08-05 19:02:39 exit 3 2008-08-05 19:02:39 id 4 2008-08...
如何让AIX,LINUX的History命令显示执行时间
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和时间(精确到...
aix查看历史命令
答:linux的bash内部命令history就可以显示命令行的命令历史,默认环境执行 history 命令后,通常只会显示已执行命令的序号和命令本身。 如果想要查看命令历史的时间戳,那么可以执行: # export HISTTIMEFORMAT='%F %T ' # history | more 1 2008-08-05 19:02:39 service work restart 2 2008-08-05 19:02:39 ex...
如何让AIX,LINUX的History命令显示执行时间
设置SHELL变量环境可以实现的, AIX和linux都能设置的, 不过这个需要权限才行的 能看一下my网名吗?这种问题能帮助搞定一下的
如何让AIX,LINUX的History命令显示执行时间
export HISTTIMEFORMAT='%F %T '
如何监控aix系统中用户登陆后执行了哪些命令
根据需要存放的日志多少及系统空间控制大小;3、修改/cmdlog目录权限,设置所有用户均有写权限;编辑好后,当用户登陆时,会执行附件中的小脚本程序,在后台监控用户的.sh_history文件的变化,并记录到/cmdlog目录下,每个用户的文件名命名规则为“用户名+日期+时间+用户进程号”!
关于AIX用户登录的操作命令日志记录疑问:
histfile里面记录的是unix标准时间,不是标准自然时间,你用history -t 看到的是由unix标准时间转换出来的标准自然时间
给些DOS、UNIX/LINUX下的命令?
AIX 的常用命令AIX操作系统基本命令系统的进入和退出 login: 输入用户名(例如:user01)password: 输入用户口令 若用户名及口令均正确,则用户将登陆成功。此时系统会出现命令提示符$或#,即表示可接收用户输入的操作系统命令。退出系统:或 exit或logout。例:#(or$)exit (or$)Ctrl^D 注,#...
电脑的常用用语及其英文对照表.
Auto On Time 自动开机时间:该选项可设置系统自动开机的时间,时间格式为24小时制。键入数值或使用左、右箭头键设定数值。设置在计算机重新启动后生效。 Dock Configuration 坞站配置 Docking Status 坞站状态 Universal Connect 通用接口:若所用操作系统为WinNT4.0或更早版本,该设置无效。如果经常使用不止一个戴尔坞站...
linux中 !#是什么意思
的程序文件.执行shell程序文件有三种方法 (1)#chmod +x file(在/etc/profile中,加入export PATH=$:~/yourpath,就可以在命令行下直接运行,像执行普通命令一样)(2)#sh file (3)# . file (4)#source file 在编写shell时,第一行一定要指明系统需要那种shell解释你的shell程序,如:#! /bin/bash...