history命令追查登录的用户和时间

Linux查看History记录加时间,这个对于系统管理员还是很有帮助的,原因不解释,你懂得!
ora11g$ history  |  more  
1    rlwrap sqlplus / as sysdba
2    rlwrap sqlplus / as sysdba
3    date
4    rlwrap sqlplus / as sysdba
  但是这里只显示了命令,并没有显示执行命令的时间,因为保存历史命令的~/.bash_history里并没有保存时间。

通过设置环境变量 export HISTTIMEFORMAT="%F %T `whoami` " 给history加上时间戳

ora11g$ export HISTTIMEFORMAT="%F %T  `whoami` "  

ora11g$ history 
1  2014-03-25 21:29:53 oracle rlwrap sqlplus / as sysdba
2  2014-03-25 21:29:59 oracle rlwrap sqlplus / as sysdba   
3 2014-03-25 21:31:23 oracle date
4 2014-03-25 21:31:43oracle rlwrap sqlplus / as sysdba

可以看到,历史命令的时间,用户已经加上了,但是.bash_history里并没有加上这个时间。
其实这个时间记录是保存在当前shell进程内存里的,如果你logout并且重新登录的话会发现你上次登录时执行的那些命令的时间戳都为同一个值,即当时logout时的时间。

尽管如此,对于加上screen的bash来说,这个时间戳仍然可以长时间有效的,毕竟只要你的server不重启,screen就不会退出,因而这些时间就能长时间保留。
你在root用户下也可以使用echo ‘export HISTTIMEFORMAT="%F %T `whoami` "‘ >> /etc/profile 然后source一下就OK 

时间: 2024-08-29 22:53:19

history命令追查登录的用户和时间的相关文章

解决CentOS 7 history命令不显示操作记录的时间和用户身份问题

centos6 中history命令显示操作命令的时间和用户身份 [[email protected] ~]# history   294  2017-01-06 16:46:48  root clear   295  2017-01-06 16:46:50  root ll   296  2017-01-06 16:46:52  root cat hostname.sh    297  2017-01-06 16:46:56  root cat nginxlog_cut.sh    298  

让history命令显示出执行用户、执行时间、执行用户IP

因为之前遇到过命令审计,找不出某条命令是由哪个用户执行的,所以需要让history命令显示出执行用户.执行时间.执行用户IP,以便追踪. 在/etc/profile文件最后加两行: USER_IP=`who -u -m | awk '{print $NF}'| sed 's/[()]//g'` export HISTTIMEFORMAT="[%F %T][`whoami`][${USER_IP}] " 执行命令 source /etc/profile 随便敲几条命令 查看效果 1047

Bash Shell 中的History命令

###  Bash Shell 中的History命令 ---------- 日常运维工作中,我们经常使用History命令去检查在这台机器上所执行的历史命令,或者谁在什么时间执行的什么命令.History命令默认情况下不显示时间,我们可以设置. ---------- - 显示所执行过的命令 简单敲下键盘,输入一个单词:history即可.或者his +table键bash自动补全命令,终端会显示行号及对应的命令. > [[email protected] ~]$ history 1  exit

02 :history命令显示日期-时间-登录IP-用户名

 如何让history命令显示日期-时间-登录IP-用户名 修改: vim /etc/bashrc 在文件最后面加入如下两行: USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'` export HISTTIMEFORMAT="[%F %T][`whoami`][${USER_IP}]" 重新加载环境变量: Source /etc/bashrc 再次执行history ,历史命令就会显示出时

Linux 命令 - w: 显示登录的用户及其当前执行的任务

命令格式 w - [husfV] [user] 命令参数 -h 不打印头部信息 -u 当列出当前进程和 CPU 时间时忽略用户名,这主要是用于执行su命令后的情况. -s 使用简短的格式化,不打印 [email protected].JCPU 和 PCPU 等信息 -f 切换显示 FROM 项信息 -V 显示版本信息 实例 a) 显示当前登录系统的用户信息 [email protected]:~$ w 23:06:04 up  1:15,  4 users,  load average: 0.0

linux学习之路之ACL的使用和查看系统上登录的用户的命令使用

我们知道文件的访问权限的是根据文件的属主.属组和其他用户这三种来设置,而ACL是提供这三种之外的更加细部的权限设定.ACL可以对单一用户和目录及文件来设置权限,这对于需要特殊的权限来说很有帮助.在之前谈到的SUID和SGID这些特殊权限,不过这些特殊权限和ACL相比,ACL可以对特定的用户来设定更加细部的权限,而SUID和SGID则是对于多个用户或者一组用户来说比较合适. 在谈ACL的使用之前,我们先一起来谈谈用户访问文件时的顺序是如何进行的?在这里暂时不讨论有关SElinux的使用. 在没有使

Linux基础命令---显示登录用户w

w 显示哪些用户登录,并且显示用户在干什么.报头按此顺序显示当前时间.系统运行时间.当前登录用户数以及过去1.5和15分钟的系统平均负载.接着为每个用户显示以下条目:登录名.TTY名称.远程主机.登录时间.空闲时间.JCPU.PCPU和当前进程的命令行.JCPU时间是附加到TTY的所有进程使用的时间.它不包括过去的后台作业,但也包括当前正在运行的后台作业.PCPU时间是当前进程使用的时间,在"what"字段中命名. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.

linux 查看ip、用户、时间对应执行的命令

这个需要使用到history命令.可以加数字,返回最近执行的几条命令.如果不加数字会返回所有的历史命令. [[email protected] ~]# history 20 1015 rm stdin.log 1016 ll 1017 rm yy 1018 ll 1019 echo 'hello' 1>> echo.log 1020 ll 1021 cat echo.log 1022 echo 'world' 1>> echo.log 1023 cat echo.log 1024

vertica时间计算SQL语句实例:统计一天内登录的用户

SQL语句实例: select count(id) as num from public.user where cast((CURRENT_TIMESTAMP-login_timed) day as integer )<=1; 或 select count(id) as num from public.user where cast((CURRENT_TIMESTAMP-login_timed) hour as integer )<=24; 大家可以根据表结构稍作调整后使用 vertica时间