用日志记录Linux用户执行的每一条命令(history)
来源:互联网 发布:3d发型设计软件 编辑:程序博客网 时间:2024/06/14 20:59
工作中,需要把用户执行的每一个命令都记录下来,并发送到日志服务器的需求,为此我做了一个简单的解决方案。这个方案会在每个用户退出登录时把用户所执行的每一个命令都发送给日志守护进程rsyslogd,你也可通过配置“etcrsyslog.conf”进一步将日志发送给日志服务器
第一种方法
#vi etcprofile
#设置history格式
exportHISTTIMEFORMAT=[%Y-%m-%d %H%M%S] [`who am i 2devnull
awk'{print $NF}'sed -e 's[()]g'`]
#记录shell执行的每一条命令
exportPROMPT_COMMAND='
if[ -z $OLD_PWD ];then
export OLD_PWD=$PWD;
fi;
if[ ! -z $LAST_CMD ] && [ $(history 1) != $LAST_CMD ]; then
logger -t `whoami`_shell_cmd[$OLD_PWD]$(history 1);
fi;
exportLAST_CMD=$(history 1);
exportOLD_PWD=$PWD;'
第二种方法
第一步:全局设置(这是一次性设置,需要root用户权限)
#vi etcprofile
#用户登录时执行此脚本
#设置history显示格式
exportHISTTIMEFORMAT=[%Y-%m-%d %H%M%S] [`who am i 2devnull
awk '{print $NF}'sed -e 's[()]g'`]
#登录时清空当前缓存 echo .bash_history
第二步:不同用户分别设置
#source etcprofile
#vi homeuser1.bash_logout
#当用户退出登录时会执行此脚本
tmpfile=tmp`whoami`_history.tmp
#把格式化的history记录到文件里
history $tmpfile
#读取文件,一行一行把文件内容发送到给syslogd。
#不要试图用history logger或logger -f$tmpfile来替代下面的代码,
#否则将只能记录前200行。
k=1
whileread line; do
((k++))
logger-t `whoami`_shell_cmd $line
done $tmpfile
rm-f $tmpfile
(如果还有其它用户需要监控,则重复第二步骤)
第三步:把日志发送给远程主机(可选)
#vi etcrsyslog.conf
#增加如下行,IP自己换,也可以用域名,@表示用UDP协议,@@表示用TCP协议
. @192.168.0.1
不足之处:
1.不能实时记录命令并发送log
2.要记录终端桌面下的命令需要重启。
免费领取兄弟连IT教育原创linux运维工程师视频/细说linux教程,详情咨询官网客服:http://www.lampbrother.net/linux/
学PHP、Linux、HTML5、UI、Android等视频教程(课件+笔记+视频)!联系Q2430675018
兄弟连linux课堂实录视频,领取联系Q2430675018
- 用日志记录Linux用户执行的每一条命令(history)
- centos配置history记录每个用户执行过的命令
- centos配置history记录每个用户执行过的命令
- CentOS配置history记录每个用户执行过的命令
- Linux执行History下的命令
- Linux执行History下的命令
- [Linux]history 显示命令执行的时间
- Linux执行History下的命令
- Linux下查看用户登陆后的操作记录及history命令显示时间
- Linux下查看用户登陆后的操作记录及history命令显示时间
- Linux下查看用户登陆后的操作记录及history命令显示时间
- LINUX用户登录后精确命令记录(history 按时间、用户显示命令记录)
- linux记录用户操作命令日志
- linux执行脚本的时候显示执行过的每一条指令
- linux 如何让linux的history命令显示时间记录
- Linux history 命令记录加执行时间戳以及记录到日志
- linux中history命令显示操作执行的时间配置
- linux中history命令显示操作执行的时间配置
- 工业4.0会给未来带来多大的改变?
- AndroidJNI.SetStaticBooleanField设置静态布尔域
- Python:列表生成式
- linux 磁盘操作命令
- android的ndk学习(1)
- 用日志记录Linux用户执行的每一条命令(history)
- 小菜鸟的xmpp(一)openfire安装 status 一直stop 打开不了
- How to run application in Qt as administrator?
- 并没有那个艰难,但也并没有那么简单
- 适配器模式
- ImageView 长按保存
- Android通过反射打造可以存储任何对象的万能SharedPreferences
- POJ1094 Sorting It All Out 拓扑排序(深搜)
- 收藏网站56