shell脚本监控目录下文件被篡改时报警
思路:
目录下文件被篡改的几种可能:
1.被修改
2.被删除
3.新增文件
md5命令详解
参数:
-b 以二进制模式读入文件内容
-t 以文本模式读入文件内容
-c 根据已生成的md5值,对现存文件进行校验
--status 校验完成后,不生成错误或正确的提示信息,可以通过命令的返回值来判断
提示:md5sum 是校验文件内容,与文件名是否相同无关
[root@lamp scripts]# mkdir /tmp/test
[root@lamp scripts]# touch /tmp/test/{a,b,c,d}
[root@lamp scripts]# find /tmp/test/ -type f |xargs md5sum >>/tmp/test.md5
[root@lamp scripts]# cat /tmp/test.md5
d41d8cd98f00b204e9800998ecf8427e /tmp/test/b //不同的文件的md5值是一样的,因为这些文件的内容都一样,都为空
d41d8cd98f00b204e9800998ecf8427e /tmp/test/c
d41d8cd98f00b204e9800998ecf8427e /tmp/test/a
d41d8cd98f00b204e9800998ecf8427e /tmp/test/d
[root@lamp scripts]# echo "haha" >/tmp/test/b
[root@lamp scripts]# >/tmp/test.md5
[root@lamp scripts]# find /tmp/test/ -type f |xargs md5sum >>/tmp/test.md5
[root@lamp scripts]# cat /tmp/test.md5
7494ab07987ba112bd5c4f9857ccfb3f /tmp/test/b
d41d8cd98f00b204e9800998ecf8427e /tmp/test/c
d41d8cd98f00b204e9800998ecf8427e /tmp/test/a
d41d8cd98f00b204e9800998ecf8427e /tmp/test/d
[root@lamp scripts]# echo "xixi" >/tmp/test/c
[root@lamp scripts]# md5sum -c /tmp/test.md5
/tmp/test/b: OK
/tmp/test/c: FAILED
/tmp/test/a: OK
/tmp/test/d: OK
md5sum: WARNING: of computed checksums did NOT match
[root@lamp scripts]#
需求
监测/var/wev/bbs目录下的文件不被篡改
思路:
- MD5_ori.md5文件作为原始的md5指纹库
- MD5_new.md5文件作为每次检查所生成的指纹库
- 然后将MD5_ori.md和MD5_new.md5做diff检查,将检查的结果追加到md5.log文件中
- 将log中的内容邮件发送
- 每五分钟执行一次该脚本(定时任务)
#!/bin/sh MD5_ori=/tmp/bbs_ori.md5
MD5_new=/tmp/bbs_new.md5
MD5_log=/tmp/md5.log [ ! -e $MD5_ori ]&&{
echo "No MD5 original file!!!"
exit
} [ ! -e $MD5_new ]&&{
touch $MD5_new
} [ ! -e $MD5_log ]&&{
touch $MD5_log
} find /var/web/bbs/ -maxdepth -type f|xargs md5sum >>$MD5_new diff $MD5_ori $MD5_new >>$MD5_log n=`cat $MD5_log|wc -l` //检查log文件是否为空 [ $n -eq ]||cat $MD5_log|mail -s "file is changed!!!_$(date +%F)" 18348******@.com >$MD5_new //清空文件,为下次检测做准备
>$MD5_log //清空文件,为下次检测做准备
shell脚本监控目录下文件被篡改时报警的更多相关文章
- 利用shell脚本监控目录内文件改动
#! /bin/bash webroot="/home/www/" cp /dev/null rsync_file if [ ! -f file.md5 ];then ...
- linux实现shell脚本监控磁盘内存达到阈值时清理catalina.out日志
想在服务器上写一个shell脚本,在磁盘使用率达到80%时,自动清理掉一些没有用的日志文件,根据这个想法,在生产环境上写了一个以下脚本,按照该流程,可实现在linux环境做一个定时任务来执行shell ...
- C# 利用FTP自动下载xml文件后利用 FileSystemWatcher 监控目录下文件变化并自动更新数据库
using FtpLib; using System; using System.Collections.Generic; using System.ComponentModel; using Sys ...
- shell脚本 批量转换目录下文件编码
发布:JB01 来源:脚本学堂 [大 中 小] 分享一例shell脚本,实现可以批量转换目录下的文件编码,很实用的一个小shell,有需要的朋友参考下.原文地址:http://www.jb ...
- Centos7下crontab+shell脚本定期自动删除文件
问题描述: 最近有个需求,就是rsync每次同步的数据量很多,但是需要保留的数据库bak文件 保留7天就够了,所以需要自动清理文件夹内的bak文件 解决方案: 利用shell脚本来定期删除文件夹内的任 ...
- 用shell脚本监控进程是否存在 不存在则启动的实例
用shell脚本监控进程是否存在 不存在则启动的实例,先上代码干货: #!/bin/shps -fe|grep processString |grep -v grepif [ $? -ne 0 ]th ...
- shell脚本监控Linux系统性能指标
2016-11-04 22:41 原作者不详 分类: Linux(7) 在服务器运维过程中,经常需要对服务器的各种资源进行监控, 例如:CPU的负载监控,磁盘的使用率监控,进程数目监控等等,以在系统出 ...
- linux shell脚本监控进程是否存在
用shell脚本监控进程是否存在 不存在则启动的实例,先上代码干货: #!/bin/shps -fe|grep processString |grep -v grepif [ $? -ne 0 ...
- Linux常用基础命令整理:关机命令、查看目录下文件命令等
Linux常用基础命令整理:关机命令.查看目录下文件命令等 整理了一些Linux常用基础命令,欢迎指正. 首先记住四个热键,学会这四个键,收益一辈子. Tab按键---命令补齐功能Ctrl+c按键-- ...
随机推荐
- webpack1.x 升级到 webpack2.x 英文文档翻译
近日项目要升级到webpack2.2,原来使用的webpack版本是1.12,在升级项目的同时,翻译一下官方的升级文档,去掉了一些不常用的配置 resolve.root, resolve.fallba ...
- c#访问存储过程
// 2015/07/04 // 访问存储过程 using System; using System.Collections.Generic; using System.Linq; using Sys ...
- Windows Opengl ES 环境搭建
环境 OS:win7 专业版SP1 64位 编译器: VS 2013 express 的cl 软件 windows上运行OpenGL ES要用到第三方的头文件,库文件和dll.下载地址 http:// ...
- 关于Monkey的一切都在这里
关于Monkey的一切都在这里 版权声明: 本账号发布文章均来自公众号,承香墨影(cxmyDev),版权归承香墨影所有. 允许有条件转载,转载请附带底部二维码. 一.什么是Monkey Monkey是 ...
- 【openstack N版】——镜像服务glance
一.openstack镜像服务glance 1.1 glance介绍 glance主要是由三部分组成 glance-api:接收云系统镜像的创建,删除,读取请求,类似nova-api,通过其他模块(g ...
- Activiti工作流(一)之基本操作介绍
工作流的概念: 工作流(Workflow),就是"业务过程的部分或整体在计算机应用环境下的自动化",它主要解决的是"使在多个参与者之间按照某种预定义的规则传递文档.信息或 ...
- 【转】jqGrid学习之参数
jqGrid参数 名称 类型 描述 默认值 可修改 url string 获取数据的地址 datatype string 从服务器端返回的数据类型,默认xml.可选类型:xml,local,json, ...
- 学习接水系统(java+thread线程)
(一)项目框架分析 对于学生并发接水项目,根据面向对象的思想,需要创建两个对象,即学生和水龙头. 接下来主要讲解不排队接水和排队接水两张情况. 项目的目录文件如下: (二)不排队接水 假设有四个学生小 ...
- 剑指offer编程题Java实现——面试题12相关题大数的加法、减法、乘法问题的实现
用字符串或者数组表示大数是一种很简单有效的表示方式.在打印1到最大的n为数的问题上采用的是使用数组表示大数的方式.在相关题实现任意两个整数的加法.减法.乘法的实现中,采用字符串对大数进行表示,不过在具 ...
- java之重定向与转发
昨天搞了一个问题,关于手机返回按钮的(Android机,ios没有返回键) 在每一步操作都要进过鉴权,如果鉴权不通过就需要跳转到指定jsp页面,再进行link:到app进行登录操作: 然后问题出现了, ...