Shell脚本对Linux进行文件校验

一、需求

有客户等保需求对文件一致性进行校验,想到利用md5sum工具,因此写脚本来对文件进行自定义扫描,后期可以利用其进行校验,快速校验文件发现变更的文件,一定程度及时发现等行为。

二、脚本

利用md5sum将扫描得到的文件保存在/tmp目录下,后缀为时间戳,后期可以利用此文件进行校验

#!/bin/bash
#func:scan file
#md5sum -c $SCAN_FILE SCAN_DIR=`echo $PATH |sed 's/:/ /g'`
SCAN_CMD=`which md5sum`
SCAN_FILE_FAIL="/tmp/scan_$(date +%F%H%m)_fall.txt"
SCAN_FILE_BIN="/tmp/scan_$(date +%F%H%m)_bin.txt" scan_fall_disk() {
echo "正在全盘扫描,请稍等!文件路径:$SCAN_FILE_FALL"
find / -type f ! -path "/proc/*" -exec $SCAN_CMD \{\} \;>> $SCAN_FILE_FAIL 2>/dev/null
echo "扫描完成,可利用以下命令后期对文件进行校验"
echo "$
b68
SCAN_CMD -c $SCAN_FILE_FAIL |grep -v 'OK$'"
} scan_bin() {
echo "正在扫描$PATH可执行文件,请稍等,文件路径:$SCAN_FILE_BIN"
for file in $SCAN_DIR
do
find $file -type f -exec $SCAN_CMD \{\} \;>> $SCAN_FILE_BIN 2>/dev/null
done
echo "扫描完成,可利用以下命令后期对文件进行校验"
echo "$SCAN_CMD -c $SCAN_FILE_BIN |grep -v 'OK$'"
} clear
echo "##########################################"
echo "# #"
echo "# 利用md5sum对文件进行校验 #"
echo "# #"
echo "##########################################"
echo "1: 全盘扫描"
echo "2: bin path扫描"
echo "3: EXIT"
# 选择扫描方式
read -p "Please input your choice:" method
case $method in
1)
scan_fall_disk;;
2)
scan_bin;;
3)
echo "you choce channel!" && exit 1;;
*)
echo "input Error! Place input{1|2|3}" && exit 0;;
esac

三、测试

  • 扫描二进制可执行文件
    由于可执行文件异常敏感,如果系统可能有将自己的程序放在可行性路径下,或替换原有二进制文件,对

    $PATH

    目录进行扫描

    将wc 文件移动到其他路径,或按照其他程序,二进制文件有变化就可以检测出来

  • 全盘扫描

    四、扩展

  • 可以修改其中的路径,更改为自己的扫描路径即可
  • 可以利用类似的其他工具也可以进行扫描

文章同步发布: https://www.geek-share.com/detail/2750595719.html

Shell脚本对Linux进行文件校验的更多相关文章

  1. shell脚本兼容linux/unix与windows/cygwin的基础(注意处理好CR, LF, CR/LF 回车 换行的问题)

    shell脚本兼容linux/unix与windows/cygwin的基础 :统一文本格式为:unix文本格式,即于LF为换行符(推荐方案) 在notepad上设置:编辑->档案格式转换-> ...

  2. Centos7下crontab+shell脚本定期自动删除文件

    问题描述: 最近有个需求,就是rsync每次同步的数据量很多,但是需要保留的数据库bak文件 保留7天就够了,所以需要自动清理文件夹内的bak文件 解决方案: 利用shell脚本来定期删除文件夹内的任 ...

  3. 170509、文本编辑器编写的shell脚本在linux下无法执行的解决方法

    今天碰到一个奇怪的问题,编写好的shell脚本再linux上执行一直提示找不到文件或目录,后来想想是文本编辑器的问题,记录下来!!! 1.查看当前文本格式 Notepad++界面中,在右下角有文件格式 ...

  4. Shell脚本使用汇总整理——文件夹及子文件备份脚本

    Shell脚本使用汇总整理——文件夹及子文件备份脚本 Shell脚本使用的基本知识点汇总详情见连接: https://www.cnblogs.com/lsy-blogs/p/9223477.html ...

  5. shell 脚本在linux中的应用

    shell脚本在linux中应用广泛,之前一直选用python写脚本来进行一些文件操作,但是最后发现shell脚本非常方便,所以特意来学习下皮毛,便于提高自己效率 定义变量 1 country=&qu ...

  6. 如何使用shell脚本快速排序和去重文件数据

    前面写过一篇通过shell脚本去重10G数据的文章,见<用几条shell命令快速去重10G数据>.然而今天又碰到另外一个业务,业务复杂度比上次的单纯去重要复杂很多.找了很久没有找到相应的办 ...

  7. Shell脚本查看linux系统性能瓶颈(转)

    Shell脚本查看linux系统性能瓶颈(转自:http://blog.51cto.com/lizhenliang/1687612) [root@test ~]# cat show_sys_info. ...

  8. shell脚本实现读取一个文件中的某一列,并进行循环处理

    shell脚本实现读取一个文件中的某一列,并进行循环处理 1) for循环 #!bin/bash if [ ! -f "userlist.txt" ]; then echo &qu ...

  9. shell脚本计算Linux网卡流量

    本文介绍了计算linux网卡流量的一个shell脚本,一个通过固定间隔时间获取ifconfig eth0 的字节值而计算出网卡流量的方法,有需要的朋友参考下. 使用shell脚本计算Linux网卡流量 ...

随机推荐

  1. Linux系统添加永久静态路由的方法(包含Centos7)

    一.使用route命令添加 使用route 命令添加的路由,机器重启或者网卡重启后路由就失效了,方法:A.添加到主机的路由# route add –host 192.168.1.10 dev eth0 ...

  2. IDEA debug ConcurrentLinkedQueue时抽风

    1. 介绍 如标题所见,我在使用IDEA debug ConcurrentLinkedQueue的Offer方法时,发生了下面的情况. 代码如下: ConcurrentLinkedQueue<s ...

  3. ReentrantLock修饰类文件,实现按类获取锁的逻辑

    1.ReentrantLock 给类文件加锁,实现类似synchronized(class)的功能 核心是类文件中,使用static修饰的reentrantLock对象 public class So ...

  4. npm ERR! Error: tunneling socket could not be established的解决问题

    一般是代理问题 可以通过在命令行运行下列命令解决: npm run server npm run webdriver-update

  5. Linux内存技术分析(上)

    Linux内存技术分析(上) 一.Linux存储器 限于存储介质的存取速率和成本,现代计算机的存储结构呈现为金字塔型.越往塔顶,存取效率越高.但成本也越高,所以容量也就越小.得益于程序访问的局部性原理 ...

  6. 为x86 CPU自动调度神经网络

    为x86 CPU自动调度神经网络 对特定设备和工作负载进行自动调试对于获得最佳性能至关重要.这是有关如何使用自动调度器为x86 CPU调试整个神经网络的文档. 为了自动调试神经网络,将网络划分为小的子 ...

  7. GPU端到端目标检测YOLOV3全过程(中)

    GPU端到端目标检测YOLOV3全过程(中)   计算机视觉初级部分知识体系                       总结了一下自己在计算机视觉初级部分的知识框架,整理如下.  个人所学并不全面( ...

  8. selenium-python元素定位技巧(一)

    在python-selenium元素定位中,有很多小技巧,在此记录总结 技巧一.尽量不要用可见的文本去定位 尽量不要用可见的文本去定位(特别是支持国际化的软件-比如禅道),因为一旦切换语言后,使用该方 ...

  9. Spring IOC(控制反转)思想笔记

    Spring IOC(控制反转)思想笔记 IOC控制反转基本理念就是将程序控制权从程序员手中交给用户自定义,从而避免了因为用户一个小需求的变化使得程序员需要改动大量代码. 案例 如果按照之前javaw ...

  10. 「题解」CF1468M Similar Sets

    本文将同步发布于: 洛谷博客: csdn: 博客园: 简书. 题目 题目链接:洛谷.CF1468M. 题意简述 给定 \(n\) 个集合 \(S_{1\sim n}\),问是否存在 \(i,j\) 满 ...