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按键-- ...
随机推荐
- 计算机 计算机语言 常见的DOS命令
你好 我是大福 你现在看的是大福笔记 我jie的女儿 8年级 在QQ上问我寒假作业 0度的水和0度的冰哪个更冷 什么? 0度水 0度冰这温度不是一样的么? 不可能 肯定没这么简单 她问的意思是不是手放 ...
- 微端启动器LAUNCHER的制作之MFC版二(下载)
用了C#再回来用C++写真的有一种我已经不属于这个世界的感觉.C++的下载就没有C#那么方便了,我用的是libcurl.dll,官网上下载的源码自己cmake出来编译的,c++的库引用有debug和r ...
- 微信小程序 引用其他js里的方法
微信小程序中,在微信官方开发文档我们可以知道 小程序的目录结构 . 一个小程序页面由四个文件组成,一个小程序页面的四个文件具有相同路径与文件名,由此我们可知一个小程序页面对应着一个跟页面同名的js文件 ...
- Jasmine基础语法
简介 Jasmine 是JavaScript的测试框架,它不依赖其他框架,也不依赖DOM,更重要的是它语法简单.以下实例都是基于Jasmine 2.5.2的,并且来自官网:https://jasmin ...
- executssql 函数的每一句代码的意思
Public Function Executesql(ByVal sql As String, Msgstring As String) As ADODB.Recordset Dim cnn As A ...
- 【Java基础】线程和并发机制
前言 在Java中,线程是一个很关键的名词,也是很高频使用的一种资源.那么它的概念是什么呢,是如何定义的,用法又有哪些呢?为何说Android里只有一个主线程呢,什么是工作线程呢.线程又存在并发,并发 ...
- 一个RESTful+MySQL程序
前言 本章内容适合初学者(本人也是初学者). 上一章内容(http://www.cnblogs.com/vanezkw/p/6414392.html)是在浏览器中显示Hello World,今天我们要 ...
- 使用hubuild,mui开发微信app—首页(一)
写在前面 本系列文章我将介绍一下从零开始利用hubuild,mui实现微信app的开发,该系列是个人学习记录,所以在每篇文章中,都是从怎么去实现开始讲解,然后再把实例中涉及知识点做一个概述. 创建一个 ...
- 智能打印SDK-源码剖析
开源地址:http://www.dnnode.com/ 软件下载地址:http://www.dnnode.com/在线展示:http://www.dnnode.com/help.html 前面的文章, ...
- hibernate中一种导致a different object with the same identifier value was already associated with the session错误方式及解决方法
先将自己出现错误的全部代码都贴出来: hibernate.cfg.xml <?xml version="1.0" encoding="UTF-8"?> ...