【Linux】如何查看命令运行历史时间以及操作人IP

您所在的位置:网站首页 linux查看服务器ip命令 【Linux】如何查看命令运行历史时间以及操作人IP

【Linux】如何查看命令运行历史时间以及操作人IP

2024-07-08 18:28| 来源: 网络整理| 查看: 265

文章目录 说明让我们的history展示执行时间及操作人ip(此ip为当前登录ip)记录日志其他说明

说明

我们在工作中,往往为了省事,多个人用一个linux账户,这样当我们在系统出问题时,无法知道是谁进行了不好的操作,比如误删除或错误的执行了命令,我们可以通过这个方法来查询定位这个“坏家伙”。

让我们的history展示执行时间及操作人ip(此ip为当前登录ip)

编辑/etc/bashrc 或 /etc/profile 或 ~/.bashrc 或 ~/.bash_profile (主要看下你的~目录下有哪个就编辑哪个,前面两个是全局,后两个针对当前用户)

vi /etc/profile

在文末加上以下内容

USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'` # 取得登录客户端的IP if [ -z $USER_IP ] then USER_IP=`hostname` fi export HISTTIMEFORMAT="%F %T $USER_IP:`whoami` "

使配置生效(这里具体看你修改文件)

source /etc/profile

测试 在这里插入图片描述

我们还可以查询账户登录的ip和登录的时间段

last 记录日志

感谢庭外看茶的反馈,经验证who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'获取的是当前登录人的ip,并没有做历史记录,博主查阅了网上相关的资料,重新整理为日志记录的形式。 编辑

vi /etc/profile

文末加入

USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'` # 取得登录客户端的IP HISTDIR=/var/log/history if [ -z $USER_IP ] then USER_IP=`hostname` fi export HISTSIZE=4096 DT=`date +%Y%m%d_%H%M%S` export HISTFILE="$HISTDIR/${LOGNAME}_${USER_IP}.$DT" export HISTTIMEFORMAT="%F %T $USER_IP:`whoami` " chmod 666 $HISTDIR/* 2>/dev/null

使配置生效(这里具体看你修改文件)

source /etc/profile

注意:此方法是将日志默认保存~/.bash_history改到指定的日志路径,通过重命名为用户名加ip和时间的形式来记录操作人ip的,日志在登录时保存在内存中,只有退出时和手动执行history -w (覆盖)或history -a (追加)才会被记录。

通过修改DT=`date +%Y%m%d` 可以实现按天记录,当然我们也可以改成按月、按年记录,由于是修改日志保存位置,当时间与我们的日志文件名不一致时,会导致用户查询不到历史记录,例如我们按照上面DT为date +%Y%m%d_%H%M%S,当用户退出再登录时,我们无法再次匹配到日志文件,这样登录人每次都要自己手输历史命令不方便,我们可以按月或按日记录,或者我们干脆去掉DT,export HISTFILE="$HISTDIR/${LOGNAME}_${USER_IP}",这样每个用户和ip的组合命令都单独记录,但是在时间纬度上就不好确定,具体使用需要你自己取舍,我的建议是如果操作用户ip少的情况就用不带DT的方式,如果用户多,可以确定大概命令出错的时间段,建议加DT设置为时分或者小时的形式。

其他说明

日志文件中的#后面的数字是命令执行的时间戳,我们可以自行转换,确定执行时间。 在这里插入图片描述

linux自带的时间戳转化命令

date -d @1657506746 +"%Y-%m-%d %H:%M:%S"

在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3