想知道用户登陆系统后都操作了什么,怎么办?

别急,linux下有一个script工具,专门记录终端会话中所有输入输出结果,并存放到指定文件中。

先看看怎么录制吧!

1、创建日志存放目录

# mkdir /opt/operation_log
# chmod -R /opt/operation_log

2、设置用户登陆后自动录制

# vi /etc/profile   #末尾追加一下内容

USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`


if [ "$USER_IP" = "" ]

then

USER_IP=`hostname`

fi


if [ $UID -ge 500 ]; then

exec script -t 2>/opt/operation_log/$USER-${USER_IP}-`date +%F-%T`.date -a -q -f /opt/operation_log/$USER-${USER_IP}-`date +%F-%T`.log

fi

# source /etc/profile   #刷新生效

参数说明:

-t:记录操作时序,2>将输出的时序存到指定文件中,回放时用到此时间文件

-a:输出结果追加到文件中

-q:静默启动

-f:每次写完后刷新输出

3、查看生成的文件

用户远程登陆操作退出后

[root@localhost operation_log]# ll
总用量 8
-rw-rw-r-- 1 work work 217 3月 9 00:50 work-192.168.199.126-2017-03-09-00:50:29.date
-rw-rw-r-- 1 work work 1556 3月 9 00:50 work-192.168.199.126-2017-03-09-00:50:29.log

可以看到,分别生成我们定义的日志格式。

当用记录日志比较多时,用more或者cat查看就比较费劲了,这时有个对应的工具叫scriptrelay,通过结合script输出的时序文件,可以自动播放。

4、操作记录回放

# scriptreplay work-192.168.199.126-2017-03-09-00:50:29.date work-192.168.199.126-2017-03-09-00:50:29.log

如果你只是单纯记录本次操作命令的话,可以直接运行:

# script test

会切换到script中,等你执行完命令后输入exit退出,再查看more test文件即可。

如果没有scriptreplay命令

[root@localhost ~]# wget http://dxdown.onlinedown.net/down/util-linux-ng-2.17.2.tar.zip
[root@localhost ~]# unzip util-linux-ng-2.17.2.tar.zip
[root@localhost ~]# tar zxvf util-linux-ng-2.17.2.tar.gz
[root@localhost ~]# cd util-linux-ng-2.17.2
[root@localhost ~]# ./configure && make (注意此处只是make了)
[root@localhost ~]# cp misc-utils/scriptreplay /usr/bin/
[root@localhost ~]# cd ..
[root@localhost ~]# rm -rf util-linux-ng-2.17.2*

这个时候就可以用scriptreplay这个命令来播放刚才的录像了

unzip 命令用不了:

#yum list | grep zip/unzip

#yum install zip

#yum install unzip

基本完成,如果在编译的时候出现错误:gcc : error trying to exec 'cc1plus': execvp : No sunch        file or directory

可以用gcc -v/g++ -v 来查看gcc 版本,会发现没有安装。安装如下:

#yum list | grep gcc

#yum install gcc-c++

#yum install unzip

linux下监控用户的操作记录---录像播放性质的更多相关文章

  1. Linux 下监控用户最大进程数参数(nproc)是否到达上限

    Linux 下监控用户最大进程数参数(nproc)是否到达上限的步骤: 1.查看各系统用户的进程(LWP)数: 注意:默认情况下采用 ps 命令并不能显示出所有的进程.因为 Linux 环境下执行多线 ...

  2. linux下sendmail邮件系统安装操作记录

    电子邮件系统的组成:1)邮件用户代理(Mail User Agent , MUA),MUA是一个邮件系统的客户端程序,它提供了阅读,发送和接受电子邮件的用户接口. 最常用的 MUA 有: linux ...

  3. Linux下绑定网卡的操作记录

    公司采购的服务器安装了双网卡,并进行bond网卡绑定设置,网卡绑定mode共有七种(0~6) bond0.bond1.bond2.bond3.bond4.bond5.bond6. 第一种模式:mod= ...

  4. Linux下监控用户操作轨迹

    在实际工作当中,都会碰到误删除.误修改配置文件等事件.如果没有堡垒机,要在linux系统上查看到底谁对配置文件做了误操作,特别是遇到删库跑路的事件,当然可以通过history来查看历史命令记录,但如果 ...

  5. Linux 下监控用户最大进程数参数(nproc)是否到达上限的步骤:

    https://www.cnblogs.com/autopenguin/p/6184886.html 1.查看各系统用户的进程(LWP)数: 注意:默认情况下采用 ps 命令并不能显示出所有的进程.因 ...

  6. 记录linux系统下所有用户的操作信息

    在日常运维中,我们需要清楚服务器上每个用户登录后都做了哪些操作,我们需要记录下每个用户的操作命令.下面的内容设置可以实现在Linux下所有用户,不管是远程还是本地登陆,在本机的所有操作都会记录下来,并 ...

  7. linux下添加用户并赋予root权限

    1.添加用户,首先用adduser命令添加一个普通用户,命令如下: #adduser tommy //添加一个名为tommy的用户#passwd tommy   //修改密码Changing pass ...

  8. linux下加入用户并赋予root权限

    1.加入用户.首先用adduser命令加入一个普通用户,命令例如以下: #adduser tommy //加入一个名为tommy的用户 #passwd tommy   //改动password Cha ...

  9. Linux下的用户和用户组,文件权限:chown和chmod

    如下图所示,root权限下新建一个用户MasterBai, /etc/passwd文件中新加入一些信息 这个文件中,记录了该服务器的用户信息,如下图红色框起来的用户,就是我们自己创建的用户,而起来2- ...

随机推荐

  1. mac os PHP 访问MSSQL

    写在前: 项目的数据库是sql server,但是自己的系统是mac os.这样导致了需要一个烦人的系统环境搭建过程.目前要在mac 上的php环境中支持mssql环境访问,经过自己了解,有两种方式: ...

  2. 安装下载MySQL

    下载MySQL的地址:下面两个都行 http://dev.mysql.com/downloads/windows/ http://dev.mysql.com/downloads/installer/5 ...

  3. 绝不要在构造函数和析构过程中调用virtual函数

    下面是一个用来塑模股市交易的类: derived的类的构造函数被调用,但是首先得调用基类Transaction的构造函数,但是在后面还得调用virrual函数,这个时候子类的对象的构造还没有完成,那么 ...

  4. smali函数分析

    一.函数调用 smali中的函数和成员变量也分为两种,分别为 direct 和 virtual 两者的区别 1.direct method 是指private函数 2.virtual method 是 ...

  5. kubernetes之初始容器(init container)

    系列目录 理解初始容器 一个pod里可以运行多个容器,它也可以运行一个或者多个初始容器,初始容器先于应用容器运行,除了以下两点外,初始容器和普通容器没有什么两样: 它们总是run to complet ...

  6. hdu1878欧拉回路(DFS+欧拉回路)

    欧拉回路 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  7. input输入框输入大小写字母自动转换

    input输入框输入小写字母自动转换成大写字母有两种方法 1.用js onkeyup事件,即时把字母转换为大写字母: html里input加上 <input type="text&qu ...

  8. 平滑的滚动listview到一个指定位

    http://blog.csdn.net/w8320273/article/details/9043339

  9. Creating Tabbed Applications

    新建一个空工程,如图 新建类 using System; using UIKit; namespace TabbedApplication { public class TabController : ...

  10. Spring注入service为null另类解决办法 工具类 一般类 静态 非controller

    系统为SpringMVC框架,在开发的过程中有一些工具类需要调用下由spring管理的service层.但是一进注入不进来,报null异常: 在尝试了网上的一系列方法后,还是没有解决.网上的解决方法主 ...