`
techcurtman
  • 浏览: 49106 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类

Shell脚本:实时监控用户操作

阅读更多
群里面有个朋友提了这样的两个问题,
  1、如何看到系统中的用户什么时间对密码进行了修改
  2、如何知道某个用户,什么时间登录过系统,什么时间退出系统,在这段时间做了哪些操作。
  第一个脚本是写出来了,但是通过history来监控的,可是这个history又不是实时的,只有在用户退出后才记录内容,而且,这个文件用户可以对其手术,所以不太完美。
  关于第二个问题,想不到一个可行的办法,就在网上找资料,无意中发现一个好东东——用scritp可以记录用户的操作,相当于录像一样。是不是很适合我们开头的两个问题的解决方案。于是就有了下面的文章。
  分析方案
  1、我们要监控用户的情况,当然root用户就排除在外了,毕竟这个是我们自己。
  2、系统的用户无需监控
  3、所监控的用户操作写入一个日志
  4、写入系统中的profile
  5、测试效果
  实施方案
  我们要在系统的profile文件中增加下面的内容,
  #记录所有用户的操作记录,排除系统中的用户和root用户
  if [ $UID -ge 500 ]; then
  exec /usr/bin/script -a -f -q /var/log/$USER-$UID-`date +%Y%m%d%H%M`.log
  fi
  这样,只要有用户登陆到你的系统,那么系统就会自动对其操作进行记录,用户的任何一个操作都记录到了/var/log/用户名-用户ID-时间.log中了。这个记录文件大家可以自己设置。
  关于记录的文件内容,可以用下面三种方法来查看
  cat yufei-500-201104141312.log
  head -n -1 yufei-500-201104141312.log
  tail -n +1 yufei-500-201104141312.log
  当然我们可以通过|grep来过滤我们想要的内容
  注意:查看上面的LOG,不能用vi more less这三个命令来查看,特别是more和less你什么也看不到。vi看到的里面有很多的乱码。
  上面的方式存在一个缺点,就是不能记录到交互的内容(实际上是记录了,只是我们看不到),那么我们可以通过script的scriptreplay对操作进行回放,这样,就对用户的操作一览无遗了。
  如果要使用scriptreplay的回放功能,需要跟时间结合,所以需要使用-t进行记录时间。
  vi /etc/profile
  修改为下面的内容:
  if [ $UID -ge 500 ]; then
  exec /usr/bin/script -t 2>/var/log/$USER-$UID-`date +%Y%m%d%H%M`.date  -a -f -q /var/log/test/$USER-$UID-`date +%Y%m%d%H%M`.log
  fi
  这时候就保存了时间和记录文件,我们就可以通过scriptreplay来查看用户的一举一动了。
  scriptreplay的格式是
  scriptreplay 时间文件 记录文件
  如
  scriptreplay yufei-500-201104141336.date yufei-500-201104141336.log
  注:
  script和scriptreplay都是由util-linux-ng软件包提供的。

    由于没有公司服务器root权限,待实验后验证真实性。
分享到:
评论

相关推荐

    shell脚本:单(多)个磁盘空间监控;日志备份(修改版)

    ### shell脚本知识点详解 根据提供的文件信息,我们可以总结出几个关键的知识点: 1. **磁盘空间监控脚本**(适用于单个或多个磁盘) 2. **日志备份脚本** #### 1. 磁盘空间监控脚本 磁盘空间监控脚本分为两个...

    Shell脚本:系统管理的瑞士军刀

    Shell脚本是一种在Unix和Linux系统中使用的强大工具,它允许用户通过编写脚本来自动化各种任务。这些脚本在系统管理中扮演着至关重要的角色,从简单的文件操作到复杂的系统监控和维护任务。本文将详细介绍Shell脚本...

    shell脚本实现服务器进程监控的方法

    本文将深入探讨如何使用Shell脚本实现服务器进程监控,这不仅有助于及时发现异常情况,还能提高系统的可用性和稳定性。接下来,我们将根据提供的文件信息详细解释其原理、步骤以及实际应用。 #### 一、写作背景 在...

    Shell脚本日志关键字监控+告警.docx

    本文将详细介绍如何使用 Shell 脚本来监控 Linux 服务器日志,并在出现关键字异常时触发相应的动作或告警操作,通知到邮件联系人。 安装邮件服务 为了实现邮件告警功能,需要先安装邮件服务。可以使用 mailx 软件...

    shell脚本:单(多)个磁盘空间监控 日志备份

    1. **磁盘空间监控脚本**(适用于单个或多个磁盘): 通过shell脚本实时监控磁盘空间,当磁盘空间使用率超过预设阈值时,向指定服务器发送警告信息。 2. **日志备份脚本**: 定期备份指定目录下的日志文件,并在备份...

    Linux常用的系统监控shell脚本

    ### Linux常用的系统监控Shell脚本知识点解析 在Linux系统管理中,使用Shell脚本来监控系统的运行状态是一种常见且有效的手段。下面将详细解析几个典型的Linux系统监控Shell脚本,涵盖网络流量监控、CPU与内存使用...

    shell脚本监控rabbitmq异常发送邮件通知.rar

    标题"shell脚本监控rabbitmq异常发送邮件通知.rar"表明这个压缩包包含了一个用Shell编写的脚本,其主要功能是对RabbitMQ集群进行健康检查,并在发现异常时通过邮件通知管理员。这对于及时发现和解决问题至关重要,...

    中北大学操作系统云沙箱实验报告-使用Shell脚本实现局域网MAC地址收集和FTP服务监控

    实验报告“中北大学操作系统云沙箱实验报告-使用Shell脚本实现局域网MAC地址收集和FTP服务监控”详细介绍了如何通过Shell脚本在Linux操作系统中管理和监控局域网内的设备。实验主要分为三个部分:FTP服务器的部署、...

    Shell脚本定时监控tomcat,服务挂掉自动重启

    Shell脚本定时监控tomcat,服务挂掉自动重启

    shell脚本编程100例

    Shell脚本编程是一种强大的编程语言,广泛应用于Linux和Unix操作系统中。本书《shell脚本编程100例》为读者提供了100个实战性的shell脚本编程实例,涵盖了检测网段主机状态、猜数字游戏、打印乘法口诀、使用rsync...

    监控Oracle数据库的常用shell脚本

    Oracle数据库的监控对于确保系统的稳定性和性能至关重要。DBA(数据库管理员)经常需要执行一...通过编写和集成这些shell脚本,DBA可以高效地监控Oracle数据库,及时发现并解决潜在问题,确保系统的高效和稳定运行。

    Shell脚本实现监控MySQL主从同步

    在这个文档中,作者详细介绍了如何使用Shell脚本来监控Linux系统下MySQL的主从同步状态,并且通过邮件通知管理员同步错误。以下是根据文档内容总结的关键知识点: 1. **Shell脚本的作用**:Shell脚本能够自动化执行...

    shell脚本写的加密脚本

    通过编写Shell脚本,你可以实现对系统的自动化管理,例如文件操作、数据处理、系统监控等。下面将详细讨论`shell脚本写的加密脚本`这个主题,以及它与Linux知识的关联。 首先,让我们了解什么是Shell脚本。Shell是...

    100个shell脚本合集

    7. 服务器资源监控:虽然未直接提及,但基于shell脚本的资源监控是常见的运维手段,可以编写脚本来定期检查CPU、内存、磁盘和网络等资源的使用情况,当超过预设阈值时触发告警。 8. LAMP环境自动化部署:LAMP...

    shell脚本实现磁盘监控系统

    利用shell脚本实现每隔60秒磁盘内存数据监控 #!/bin/bash #Author:GaoHongYu #QQ:1061767621 #Time:2019-12-24 18:43:22 #Name:ncjk.sh #Version:V1.0 clear xtip=$(hostname -I) cprl=$(df -Th |head -2|tail -1|...

    linux系统java服务自启动shell脚本及服务cpu内存占用监控脚本

    自启动shell脚本和CPU、内存占用监控脚本能确保Java服务在系统启动时自动运行,并实时监测其性能状态,以便及时发现和处理潜在问题。下面将详细介绍这两个方面的内容。 一、Linux系统Java服务自启动shell脚本 自...

    监控 脚本 Shell脚本

    Shell脚本是Unix/Linux环境中的一种强大工具,它允许用户编写自动化任务,包括对系统状态的检查和监控。 在IT领域,系统监控是确保服务稳定性和性能的关键环节。通过编写Shell脚本,我们可以定制化监控需求,例如...

    Linux Shell 网络层监控脚本(监控包括:连接数、句柄数及根据监控反馈结果分析)

    Linux Shell 网络层监控脚本(监控包括:连接数、句柄数及根据监控反馈结果分析)

    Shell脚本编程100例

    Shell脚本编程是Linux系统管理中的重要技能,它允许用户自动化执行一系列命令,大大提高工作效率。以下是一些关于Shell脚本编程的关键知识点: 1. **Hello World脚本**:这是所有编程语言的基础,用于验证环境设置...

    Shell脚本中获取进程ID的方法

    我该如何在shell脚本中得到PID。 当我在执行shell脚本时,它会启动一个叫子shell的进程。作为主shell的子进程,子shell将shell脚本中的命令作为批处理运行(因此称为“批处理进程”)。 在某些情况下,你也许想要...

Global site tag (gtag.js) - Google Analytics