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按键-- ...
随机推荐
- FMDB的简单用法
使用cocoaPods将FMDB下载到工程 第一步:引入框架,引入支持类库(libsqlite3.0.tbd) #import <FMDB.h> 声明属性 @interface ViewC ...
- Visual Studio 2017 RC 初探安装
上次看到博客介绍 Visual Studio 2017 RC,看到其中一个改进是启动很快,这是一大进步,也是低配电脑的程序员的期望.不过还没体验,是驴是骡子拉出来看看,这不就开始下载. 1.打开官网: ...
- 第一章 Java语言概述
1.人机交互有两种方法:一种是图形化界面,一种是命令行方式 2.如何打开命令行:开始-在运行命令行中输入cmd 3.常用的DOS命令: dir(directory):列出当前目录下文件及文件夹 md( ...
- DirectX11中Shader的封装
引言 这个寒假学DirectX11的时候用的书是<Introduction to 3D Game Programming with DirectX 11>,里面关于Shader的部分全 ...
- [UWP]附加属性2:实现一个Canvas
5. 附加属性实践:自定义Canvas 附加属性在UWP中是一个十分重要的组成部分,很多功能都依赖于附加属性实现,典型的例子是常用的Grid和Canvas.通常附加属性有三个使用场景:插入属性.触发行 ...
- jQuery_第二章_定时器
- [bzoj1067][SCOI2007]降雨量——线段树+乱搞
题目大意 传送门 题解 我国古代有一句俗话. 骗分出奇迹,乱搞最神奇! 这句话在这道题上得到了鲜明的体现. 我的方法就是魔改版线段树,乱搞搞一下,首先借鉴了黄学长的建树方法,直接用一个节点维护年份的区 ...
- Android源码编译常见错误(持续更新)
本文为个人工作中处理遇到的编译问题做个小结,后续遇到新的问题,持续更新. No such file or directory: 1. 检查路径是否有问题,文件是否存在,若文件存在且路径没问题 2. 检 ...
- Matlab立体标定mat转换成Opencv的CvMat
最近在做基于双目视觉的三维重建.比较opencv和matlab工具箱的立体标定结果精度时,发现貌似如果手工选取角点不那么离谱的话,matlab标定结果精度更高也更鲁棒.就想先用matlab标定好相机, ...
- async/await与promise(nodejs中的异步操作问题)
此文只是粗略介绍使用方法,欲了解核心概念请参考官方文档或其他资料. 举例写文章详情页面的时候的一个场景:首先更改文章详情中的 PV,然后读取文章详情,然后根据文章详情中文章 Id 查阅该文章评论和该文 ...