在Linux系统管理中,监控目录和文件的变化是确保系统安全和稳定的重要手段。本文将详细介绍一个用Shell脚本实现的简单但实用的监控方案,特别适用于服务器被频繁挂马的情况,帮助管理员及时发现异常活动。 我们创建一个名为`initial.sh`的脚本,它的目的是保存被监控目录的原始状态。在这个示例中,我们监控`/root`目录,但你可以根据实际需求修改`DIR`变量。脚本通过`find`命令遍历指定目录下的所有文件,然后使用`du -sb`命令获取每个文件的大小和路径,最后将这些信息写入临时文件`$TMP_A`。这样,我们就有了一个基准,可以用来比较后续的文件变化。 接下来,我们编写`monitor.sh`脚本,这个脚本会定期运行,检查目录是否发生变动。同样,`DIR`变量设置为需要监控的目录。脚本首先创建一个日期变量`DATE`,用于记录变更发生的时间。然后,它再次使用`find`和`du -sb`组合获取当前目录的状态,并将结果保存在`$TMP_B`中。接着,通过`diff`命令比较`$TMP_A`(原始状态)和`$TMP_B`(当前状态),如果存在差异,就将变化写入日志文件`$LOG`。 当`diff`命令返回非空结果时,`DIFF`变量会被赋值。如果`DIFF`为空,表示没有变化,脚本会将"Nothing change"写入日志。否则,使用`awk`、`sort`、`uniq`和`sed`等命令处理`DIFF`,提取出发生改变的文件名,并按大小排序,去除重复项,只保留已修改的文件。这些信息将写入`$TMP_C`,并追加到日志文件中。同时,脚本还会记录变更发生的日期。如果`$TMP_C`非空,表示有文件被修改,此时会更新`$TMP_A`,用当前目录状态覆盖原始状态,以便下一次比较。 脚本会在日志文件末尾添加一条分割线,并删除临时文件`$TMP_B`和`$TMP_C`,以保持磁盘整洁。 这个脚本监控方案的核心原理是通过比较文件大小的变化来检测文件的增删改操作。由于`du -sb`会返回每个文件的大小,因此如果文件大小改变或文件新增、删除,`diff`命令将能够检测到这些差异。 在实际使用中,可以将`monitor.sh`脚本加入到cron定时任务,设置合适的频率运行,如每分钟或每小时,以实现自动化监控。同时,为了更全面的监控,可以考虑结合其他工具,如`inotify-tools`,它能提供实时事件通知,更及时地捕获文件系统变化。 总结来说,这个Shell脚本监控方案提供了基础的目录和文件变化监控功能,对于防止恶意软件活动和监控服务器健康状况非常有用。不过,根据具体需求,可能需要对其进行调整或与其他工具结合使用,以达到最佳的监控效果。

























- 粉丝: 5
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 全国计算机等级考试实用应试教程二级C语市公开课特等奖市赛课微课一等奖(1).pptx
- 中职计算机教学中存在的问题及对策(1).docx
- 小议建筑工程管理信息化(1).docx
- 互联网金融背景下第三方支付资金管理的研究(1).docx
- 【推荐下载】盘点:工业物联网行业五大热门岗位(1).pdf
- 可逆运行电动机的plc控制系统的设计-辽宁石油化工大学继续教育学院毕业设计论文(1).doc
- 电气工程自动化及节能设计探究(1).docx
- 计算机信息管理技术在网络安全中的应用策略(1).docx
- 移动互联网发展趋势讲课文档(1).ppt
- 互联网技术条件下中职公共艺术教学新方法探索(1).docx
- 图书管理系统可行性分析报告(1).pptx
- 关于西门子S7-400H热冗余PLC在石油钻机的应用(1).docx
- 物联网定义(1).pptx
- 信息化教学在高职院校教学中的应用(1).docx
- 互联网+模式下乡村旅游发展现状及对策(1).docx
- 酒店信息化系统的规划与设计--毕业论文(1).doc


