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按键-- ...
随机推荐
- cookie,sessionstorage,localstorage区别
都是保存在浏览器端,且同源的,区别如下: 1.携带 cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递. 而sessionStorage和local ...
- 笔记之《用python写网络爬虫》
1 .3 背景调研 robots. txt Robots协议(也称为爬虫协议.机器人协议等)的全称是"网络爬虫排除标准"(Robots Exclusion Protocol),网站 ...
- 在Ubuntu12.0至14.04版本之间用Apache搭建网站运行环境
为了顺利安装各种软件,先更新下系统. apt-get update 安装Apache服务 apt-get install apache2 -y 安装php apt-get install php5 - ...
- 基于canvas的二维码邀请函生成插件
去年是最忙碌的一年,实在没时间写博客了,看着互联网行业中一个又一个人的倒下,奉劝大家,健康要放在首位,保重身体.好了,言归正传,这是17年的第一篇博文,话说这天又是产品同学跑过来问我说:hi,lenn ...
- javascript学习-目录
Javascript学习 第1章 Javascript简介 1.1 Javascript简史 1.2 Javascript实现 1.3 Javascript版本 第2章 Javascript入门 2. ...
- contenteditable实现可编辑的HTML标签
最近工作中遇到了一个小问题,让我学到了新的标签属性--contenteditable. 我需要实现的是手机端界面,特别简单的一个页面,如下图: 在我脑海里第一时间想到的应该就是一个form表单然后里面 ...
- 基于微博数据用 Python 打造一颗“心”
一年一度的虐狗节刚过去不久,朋友圈各种晒,晒自拍,晒娃,晒美食,秀恩爱的.程序员在晒什么,程序员在加班.但是礼物还是少不了的,送什么好?作为程序员,我准备了一份特别的礼物,用以往发的微博数据打造一颗“ ...
- c++ STL常用算法使用方法
#include <string> #include <vector> #include <functional> #include <iostream> ...
- H5缓存-Manifest
在app中更新h5页面一直有缓存问题.默认什么都不做的情况下,app有一定的空间缓存页面.一开始更新之后会马上加载,等到app缓存空间上来之后更新就无法下载了.安卓能够清理缓存空间,ios就只能卸载重 ...
- 关于redis 缓存的问题
项目是 星期三上线的 , 今天来的时候有个问题, 我觉得很有价值,所以就记录了一下. 问题描述: 我们是做app 开发 的, 这次开发是要 把 以前的app 的业务 分开,新建一 个app ,这个 ...