文件监控脚本 – Linux bash

md5算法及生成方式

MD5值等同于文件的ID,它的值是唯一的。 如果文件已被修改(例如嵌入式病毒,特洛伊木马等),其MD5值将发生变化。 因此,一些常规下载URL提供文件MD并且通常提供MD5值。 如果用户在下载后发现他们的MD5值与网站公告不一致,可能是文件被修改过或者下载出错。

md5sum命令用于生成和校验文件的md5值。它会逐位对文件的内容进行校验。是文件的内容,与文件名无关,也就是文件内容相同,其md5值相同。md5值是一个128位的二进制数据,转换成16进制则是32(128/4)位的进制值。(生成MD5摘要的方式有很多)

majun@instance-zqtg07w6:~/bash_scripts$ md5sum /etc/passwd > passwd.md5
majun@instance-zqtg07w6:~/bash_scripts$ cat passwd.md5
709fb35cca52ac0fe8082a30976fea36  /etc/passwd
majun@instance-zqtg07w6:~/bash_scripts$ md5sum -c passwd.md5
/etc/passwd: OK #验证md5值未被更改
majun@instance-zqtg07w6:~/bash_scripts$ useradd testmd5
useradd: Permission denied.
useradd: cannot lock /etc/passwd; try again later.
majun@instance-zqtg07w6:~/bash_scripts$ exit
exit
root@instance-zqtg07w6:~# useradd testmd5
#添加用户后/etc/passwd的md5值改变
root@instance-zqtg07w6:~# su majun
majun@instance-zqtg07w6:/root$ cd ~/bash_scripts/
majun@instance-zqtg07w6:~/bash_scripts$ md5sum -c passwd.md5
/etc/passwd: FAILED # 再次验证失败
md5sum: WARNING: 1 computed checksum did NOT match
majun@instance-zqtg07w6:~/bash_scripts$
# 也可以不产生输出,静默
majun@instance-zqtg07w6:~/bash_scripts$ md5sum -c --status passwd.md5
majun@instance-zqtg07w6:~/bash_scripts$ echo $?
1

脚本

majun@instance-zqtg07w6:~/bash_scripts$ vim md5_check.sh
majun@instance-zqtg07w6:~/bash_scripts$ cat md5_check.sh
#!/bin/bash
DIRS='/tmp/csdn /home/majun/bash_scripts'
FIND=/usr/bin/find
MD5SUM=/usr/bin/md5sum
MD5_FILE="all_file.md5"$FIND $DIRS -type f | while read linedo $MD5SUM $line >> $MD5_FILE
done

验证

majun@instance-zqtg07w6:~/bash_scripts$ bash md5_check.sh
majun@instance-zqtg07w6:~/bash_scripts$ cat all_file.md5
a870abffa168bdafbdcdb23bb2a745be  /tmp/csdn/csdn.py
98c4e5c34470de352b11784cebec3461  /home/majun/bash_scripts/useradd_while02.sh
67ea669dfebf9ecf7171841cf7ea2ada  /home/majun/bash_scripts/passwd.md5
ceba1c0b9883ec86385e9d7c56582b87  /home/majun/bash_scripts/server_list
7c19a2612856d048a464c0e6a4feac15  /home/majun/bash_scripts/expect_ftp.sh
ecca34e9207c19510606385cd1c1be06  /home/majun/bash_scripts/useradd_while03.sh
3a48bdf3227567f960392cd4efb7e835  /home/majun/bash_scripts/server_alive.sh
d7614256177090b89c622063c0f2048a  /home/majun/bash_scripts/users.txt
8e056e480c0c7c35198abf345f87656c  /home/majun/bash_scripts/md5_check.sh
17fdb0e64c8c79302e725a7f478c8fb5  /home/majun/bash_scripts/useradd_while04.sh
majun@instance-zqtg07w6:~/bash_scripts$ md5sum -c all_file.md5
# 全部没有改动所以验证ok
/tmp/csdn/csdn.py: OK
/home/majun/bash_scripts/useradd_while02.sh: OK
/home/majun/bash_scripts/passwd.md5: OK
/home/majun/bash_scripts/server_list: OK
/home/majun/bash_scripts/expect_ftp.sh: OK
/home/majun/bash_scripts/useradd_while03.sh: OK
/home/majun/bash_scripts/server_alive.sh: OK
/home/majun/bash_scripts/users.txt: OK
/home/majun/bash_scripts/md5_check.sh: OK
/home/majun/bash_scripts/useradd_while04.sh: OK
majun@instance-zqtg07w6:~/bash_scripts$

修改其中某个文件发现check不通过

majun@instance-zqtg07w6:~/bash_scripts$ echo " " >> server_list
majun@instance-zqtg07w6:~/bash_scripts$ md5sum -c all_file.md5
/tmp/csdn/csdn.py: OK
/home/majun/bash_scripts/useradd_while02.sh: OK
/home/majun/bash_scripts/passwd.md5: OK
/home/majun/bash_scripts/server_list: FAILED
/home/majun/bash_scripts/expect_ftp.sh: OK
/home/majun/bash_scripts/useradd_while03.sh: OK
/home/majun/bash_scripts/server_alive.sh: OK
/home/majun/bash_scripts/users.txt: OK
/home/majun/bash_scripts/md5_check.sh: OK
/home/majun/bash_scripts/useradd_while04.sh: OK
md5sum: WARNING: 1 computed checksum did NOT match
majun@instance-zqtg07w6:~/bash_scripts$

所有的练习脚本都在:
https://github.com/SaltNego/Learn_linux_bash

文件监控脚本 -- Linux bash相关推荐

  1. 脚本 linux bash PowerShell、alibaba clound toolkit OpenSSH

    ##linux bash 和 windows powershell 老旧的cmd (command) 一. bash shell用途 运维命令: linux bash:linux 使用bash 发布j ...

  2. bash 抓捕异常_实现简单的监控脚本(Bash的执行和异常捕获)

    当我们需要监控服务运行状态时,一般的策略是写定时脚本,定时执行探测服务状态,如果出现预期外情况,就报警.那么第一步我们就需要学会写一个监控脚本,这里我们会讲到bash的执行环境和异常捕获,以及一些简单 ...

  3. linux保存shell脚本,linux – bash如何保存shell脚本

    是否可以保持/停止bash脚本进度而不会终止进程? (通过kill命令)或其他命令 例如 这个脚本 – install_linux_pkgs.bash,将逐步安装Linux pkgs ./instal ...

  4. 批量添加用户脚本--Linux bash

    脚本实例 批量用户添加 for 在读取文件时,任何空白字符都可以自动作为分隔符.while的按行读取使用的是换行符作为标记,所以在这使用while更好 majun@instance-zqtg07w6: ...

  5. linux批量修改文件名称脚本,linux批量文件改名脚本

    此脚本是mv命令的增强版,mv 不支持mv *.txt *.text之类的改名,本脚本主要构造了一个ren函数不但支持 ren %.txt %.text这样的改名,还支持 ren a%b%c.% x% ...

  6. Linux命令之系统五大负载(监控脚本及问题详解)

    文章目录 一.I/O 1.监控脚本 2.I/O过高异常如何解决 二.网络流量 1.监控脚本 2.网络流量异常如何解决 三.硬盘 1.监控脚本 2.硬盘满了如何解决df -h 四.cpu 1.监控脚本 ...

  7. linux中感叹号的作用,感叹号在Linux bash中使用技巧

    1. 重复执行上一条指令  !! [root@iZ23t6nzr7dZ python]# ls /usr/local/ aegis bin etc games include lib lib64 li ...

  8. mysql qps tps 监控_Mysql库TPS,QPS实时监控脚本

    作为一名数据库运维人员,手里都有一些工具脚本,这些都是你提升运维效率,快速排查故障的利器. 在生产上部署MySQL时,都会对同一配置的mysql数据库做QPS和TPS压测,获取QPS和TPS的容量数据 ...

  9. centos 监视文件变动脚本

    适用centos 监视文件变动后进行其它操作 安装 inotify tools. yum --enablerepo=epel -y install inotify-tools # install fr ...

最新文章

  1. vagrant mac的一些坑
  2. python编程高手教程_写给编程高手的Python教程(11) 深入类和对象
  3. 13、Spring Boot 2.x 多数据源配置
  4. Spring整合mybatis中的sqlSession是如何做到线程隔离的?
  5. 我的内核学习笔记13:x86平台linux系统重启流程跟踪
  6. 近300个 Windows 10 可执行文件易受 DLL 劫持攻击
  7. 首次体验 Live Writter
  8. 今天你18岁,父母的碎碎念
  9. 游戏数据库探索 开源协议 数据库的GPL问题 企业Linux 数据库笔记1
  10. VideoProc for Mac(全能影片处理软件)
  11. IOS微信浏览器input输入账号键盘闪烁
  12. pyalgotrade源码分析4--PyAlgoTrade统计指标
  13. proteus教程——DAC0832输出连续锯齿波
  14. TSLAM室内自主定位方案
  15. 天龙单机服务器维护,天龙八部网游单机服务器修改资料(Dragon eight online games, single server, modify information).doc...
  16. 腾讯QQ企业邮箱设置
  17. 视频采集卡二次开发(天敏SDK2500+openCV)
  18. 【Web Development - AnnihilateSword】03 - Intermediate HTML
  19. 基于Qt大恒工业相机二次开发demo-C++
  20. PostgreSQL 免费公开课(第14期)(CUUG)(2020年)

热门文章

  1. Python-被7整除
  2. 【C++学习笔记】函数基础和参数传递
  3. 思维导图怎么画?新手5分钟教程分享
  4. 基于STM32的多功能门禁系统(AS608指纹识别、密码解锁、刷卡解锁)
  5. 人工智能方向毕业设计_人工智能时代,理工科专业的毕业设计都被安排了
  6. s一般怎么称呼自己的m_“老公、老婆、亲爱的”?快来围观明星怎么称呼自己的另一半!...
  7. 跨境电商属于外贸吗,Starday跨境电商靠谱吗?
  8. 创业融资路演PPT模板
  9. 字符串长度测量,大小比较
  10. 固态硬盘文件恢复方法有哪些?四种恢复方法助您解忧