linux history使用小结

在服务器运维的时候,通常一个很重要的步骤的是需要记录history,因为一旦服务器发生异常的时候,可以通过history查看是不是误操作,或者其他原因。

history记录了在一段时间内终端输入的命令,该命令是linux默认安装的程序,形如:

tangs@ubuntu:~$ history
    1  ls -all
    2  history
    3  vim ~/.bash_logout
    4  ls
    5  history
tangs@ubuntu:~$

history会在用户退出时才将操作历史写入 ~/.bash_history,所以原数据可以在文件中查看,如果需要立马写入可以执行

history -w

保存历史记录文件是可以通过HISTFILE指定的,可以在 ~/.bashrc中指定,执行如下命令可以指定文件保存路径

echo HISTFILE=/path/your_path >> ~/.bashrc && source ~/.bashrc

同时,history提供一个HISTSIZE的变量,用于history历史记录长度的指定,ubuntu 16.4TLS默认长度为1000,其他linux like版本可能也是1000吧,可以利用如下查看:

tangs@ubuntu:~$ echo $HISTSIZE
1000
tangs@ubuntu:~$

同理,也可以修改HISTSIZE的大小来改变历史记录的长度。

history还提供了一个HISTTIMEFORMAT的变量,该变量指定了一个时间格式,也可以认为每条命令记录了执行的时间,同时还可以利用这个这边添加前缀信息,比如执行该条命令的用户名,比如可以在~/.bashrc中添加:

HISTTIMEFORMAT="$USER %F %T : "

结果就形如

    1  tangs 2019-02-11 03:39:21 : ls -all
    2  tangs 2019-02-11 03:39:21 : history
    3  tangs 2019-02-11 03:39:21 : vim ~/.bash_logout
    4  tangs 2019-02-11 03:39:21 : ls
    5  tangs 2019-02-11 03:39:21 : history
    6  tangs 2019-02-11 03:39:21 : vim ~/.bashrc
    7  tangs 2019-02-11 03:39:21 : source ~/.bashrc
    8  tangs 2019-02-11 03:39:21 : history
    9  tangs 2019-02-11 03:39:24 : ls

这样就记录了每条命令的时间,同时也利用时间格式,添加了$USER 获得用户名当着前缀。这样做的目的是,当我们要查看所有用户操作历史时,可以遍历每个用户下的操作记录,合并写入一个文件,这时候通过前缀,时间,就可以很清晰的还原操作历史。如果有必要还可以通过时间,对所有用户的操作记录排序,还原一段时间内的真实操作记录。

如果服务器有多个用户,每个用户都配置一遍时间,长度等很麻烦,可以直接在/etc/profile中配置,这样每个用户登录到bash时,都可以得到以上的配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值