linux中,history命令,显示时间戳?操作人?IP地址?
需求描述:
在linux环境中,有的时候为了审计的需要,要记录谁什么时间从什么IP登录,执行了什么命令,bash的history命令就能够记录这些信息,但是在默认的情况下,是不记录时间的,所以呢,在这里记录下,对其进行改造。
操作过程:
1.默认的history命令,只是显示行号,执行的命令
[root@testvm01 ~]# history | more
3 ./test.sh
4 ls
5 vi nmon16e_x86_rhel65
6 cdd /opt
7 ls
8 cd /opt
9 ls
10 cd softwares/
11 ls
12 cd ../app/
13 ls
14 cd test01/
备注:这样,就可以看到命令执行的历史,但是,看不到什么时间执行的,谁执行的。
2.使用HISTTIMEFORMAT变量来指定命令中增加时间戳
[root@testvm01 ~]# export HISTTIMEFORMAT="%F %T " #注意: 在调用history命令时,行号 然后是HISTTIMEFORMAT的执行结果,然后是命令,注意%T后面有空格。
[root@testvm01 ~]# history | more
-- :: vi nmon16e_x86_rhel65
-- :: cdd /opt
-- :: ls
-- :: cd /opt
-- :: ls
-- :: cd softwares/
-- :: ls
-- :: cd ../app/
-- :: ls
-- :: cd test01/
备注:这样就能够将命令执行的时间记录上了。或者说,给每个命令一个时间戳。或者说,本身命令历史就是有时间戳的,只是没有显示。
3.想要记录是哪个IP操作的,对HISTTIMEFORMAT变量进行改造
[root@testvm01 ~]# export HISTTIMEFORMAT="%F %T `who am i` " #在后面,增加who am i的执行,就是哪个ip,哪个用户登录的。
You have new mail in /var/spool/mail/root
[root@testvm01 ~]# history
-- :: root pts/ -- : (192.168.53.2) vi zabbix_agent.sls
-- :: root pts/ -- : (192.168.53.2) salt '*' state.sls init.zabbix_agent
-- :: root pts/ -- : (192.168.53.2) vi zabbix_agent.sls
-- :: root pts/ -- : (192.168.53.2) salt '*' state.sls init.zabbix_agent
-- :: root pts/ -- : (192.168.53.2) ls
-- :: root pts/ -- : (192.168.53.2) cat zabbix_agent.sls
-- :: root pts/ -- : (192.168.53.2) ls
-- :: root pts/ -- : (192.168.53.2) vi SysIni.sls
-- :: root pts/ -- : (192.168.53.2) salt '*' state.sls init.SysIni
-- :: root pts/ -- : (192.168.53.2) salt 'testvm02' grains.items
-- :: root pts/ -- : (192.168.53.2) init
-- :: root pts/ -- : (192.168.53.2) history
-- :: root pts/ -- : (192.168.53.2) history | more
-- :: root pts/ -- : (192.168.53.2) export HISTTIMEFORMAT="%F %T "
-- :: root pts/ -- : (192.168.53.2) history | more
-- :: root pts/ -- : (192.168.53.2) history
-- :: root pts/ -- : (192.168.53.2) history | more
-- :: root pts/ -- : (192.168.53.2) history
-- :: root pts/ -- : (192.168.53.2) export HISTTIMEFORMAT="%F %T `who am i` "
-- :: root pts/ -- : (192.168.53.2) history
4.可以将这个变量加入到/etc/profile全局变量设置中,就对所有的会话都生效了
[root@testvm01 ~]# tail /etc/profile
else
. "$i" >/dev/null >&
fi
fi
done unset i
unset -f pathmunge export HISTTIMEFORMAT="%F %T `who am i` "
[root@testvm01 ~]# source /etc/profile
备注:这样的话,对于后续登录的会话都是生效的。
疑问:在这里我就有个疑问了,为啥时间格式是%F %T呢,也找了半天,后来在bing上搜索了一个贴,里面提到,HISTTIMEFORMAT使用的是strftime函数的时间格式。
strftime函数的手册:
http://man7.org/linux/man-pages/man3/strftime.3.html
里面提到:
%F Equivalent to %Y-%m-%d (the ISO 8601 date format). (C99)
%T The time in 24-hour notation (%H:%M:%S). (SU)
所以,就是需要的时间格式,自己也可以根据具体的情况,选择,是有AM/PM这种的,还是其他的方式,都可以,来源找到了,自然知道如何去配置。
文档创建时间:2019年3月13日14:53:50
linux中,history命令,显示时间戳?操作人?IP地址?的更多相关文章
- linux下history命令显示历史指令记录的使用方法
Linux系统当你在shell(控制台)中输入并执行命令时,shell会自动把你的命令记录到历史列表中,一般保存在用户目录下的.bash_history文件中.默认保存1000条,你也可以更改这个值 ...
- linux中history命令使用与配置
history中设置显示命令的执行时间 vi /root/.bashrc HISTTIMEFORMAT="%Y-%M-%D %H:%M:%S" export HISTTIMEFOR ...
- Linux设置history命令显示行数以及时间
Linux和unix上都提供了history命令,可以查询以前执行的命令历史记录但是,这个记录并不包含时间项目因此只能看到命令,但是不知道什么时间执行的如何让history记录时间呢? 解决方案 注意 ...
- linux下history命令显示执行时间
想在输入history命令之后,显示自己历史的命令执行的时间,需要在用户目录下~/.bashrc的文件末尾追加添加如下几行 之前一直想看一下自己历史命令执行的时间,找了很多教程都没有卵用,最终参考了如 ...
- Linux设置history命令显示时间
效果如图: 设置方法如下: vim /etc/bashrc #command-->history set HISTFILESIZE=2000 #保存命令的总数默认总数为1000 HISTSIZE ...
- linux中history加入显示时间命令代码
source 空格 配置文件,则配置立即生效,这里的soruce也可以用英文状态下的点即“.”代替 历史命令history -w将现在的命令记录写入到history里面 如果在history里面加上时 ...
- linux中date命令显示昨天的日期信息?以特定格式显示时间?
需求描述: linux环境中,在使用date命令的时候,可以通过-d指定日期的字符串来显示日期 操作过程: 1.通过date显示昨天的日期 [root@redhat6 ~]# date -d 'yes ...
- Linux 配置 history 命令显示操作时间、用户和登录 IP
一.在配置文件中(/etc/bashrc 或者 /etc/profile 或者~/.bash_profile 或者 ~/.bashrc)添加如下配置 #vim /etc/bashrc // 进到 ...
- linux 中 ll 命令显示 的大小 是什么单位的啊?
ll显示的是字节,可以使用-h参数来提高文件大小的可读性,另外ll不是命令,是ls -l的别名 ls -al 是以字节单位显示文件或者文件夹大小: 字节b,千字节kb, 1G=1024M=1024 ...
- linux中日历命令显示
cal 显示当前月的日历 cal 年份 显示特定一年的年历 [jasmine.qian@]$ cal January 2019 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 ...
随机推荐
- php 公共方法Util
总结了一个公共类方法类: class Util extends ArrayHelper { /** * 判断是否为空数组 * @param mixed $arr * @return boolean * ...
- iOS自动布局的学习
Autolayout: 最重要的两个概念: 约束:对控件位置和大小的限定条件 参照:对控件设置的约束是相对于哪一个视图而言的 自动布局的核心计算公式: obj1.property1 =(obj2.pr ...
- 【贪心】LIS @The 15th Zhejiang Provincial Collegiate Programming Contest E
传送门 题意要你构造一个序列,使得该序列的每个位置上的最长上升子序列的长度能构成给定的序列. 构造序列的元素要求还要求满足给定的上下界 solution 我们可以把给出的最长上升子序列的长度按升序排列 ...
- 【组合数】[NOIP2011]选择客栈[c++]
题目描述 丽江河边有n 家很有特色的客栈,客栈按照其位置顺序从 1 到n 编号.每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~ k-1 表示),且每家客栈都设有一家咖啡店,每家咖啡店均 ...
- 牛客网-C++
2017/8/18 程序运行结束时才释放:静态变量在内存的静态存储区,静态数据一直占有着该存储单元直到程序结束:一般局部变量在函数调用结束后释放变量占用的存储单元,而静态局部变量不释放. 静态全局变量 ...
- GMA Round 1 函数求值
传送门 函数求值 设函数$f(x)=x^{2018}+a_{2017}*x^{2017}+a_{2016}*x^{2016}+...+a_{2}*x^2+a_{1}*x+a_{0}$,其中$a_{0} ...
- mycat 资料汇总
1. mycat 官网http://www.mycat.io/ 2. mycat 官博:http://blog.csdn.net/zhxdick/article/category/6086991/1 ...
- Javascript正则表达入参是null
今天群友问了一个问题,如下的执行结果是什么? var reg = /^[a-z0-9\u4e00-\u9fa5]{0,15}$/; console.log(reg.test(null)); // tr ...
- linux 通过nvm安装node
官方介绍:https://github.com/creationix/nvm#installation PS:通常不要用root权限安装软件,因为线上任何服务部署都不允许用root,其他软件用root ...
- coon's patch
作者:桂. 时间:2018-05-23 06:11:54 链接:https://www.cnblogs.com/xingshansi/p/9070761.html 前言 早晨突然想到计算机模型的各种 ...