脚本实现目的:

通过脚本检测相应的文件是否发生改变。

脚本思路:

使用文件的md5值作为检测依据,若文件发生变化,则记录日志,并备份发生改变的文件。

通过配置文件的方式指定文件传递给脚本,以方便批量部署。

脚本内容:#!/bin/bash

#use for check file change

#create in 2013-06-07

#Last modify is 2014-04-09

source ~/.bash_profile &> /dev/null

cd /tol/script/

ls /tol/script/logs &> /dev/null || /bin/mkdir -p /tol/script/logs

bakdir=/tol/backup/conf_bak

ls $bakdir &> /dev/null || /bin/mkdir -p $bakdir

dt2=`date +"%F"`

log="/tol/script/logs/md5_check-$dt2.log"

host=`/sbin/ifconfig |grep "inet addr"|cut -d ':' -f2 |awk '{print $1}'|head -1`

conf=/tol/script/md5_check.conf

oldlist=/tol/script/md5_check.old

newlist=/tol/script/md5_check.new

if test ! -f $conf ; then

echo "the $conf does not exist"

exit 0

else

if test ! -f $oldlist ; then

for f in `cat $conf`

do

/usr/bin/md5sum $f >> $oldlist

done

#/usr/bin/chattr +i $oldlist

else

for f in `cat $conf`

do

dt=`date +"%F_%T"`

/usr/bin/md5sum $f > $newlist

old=`cat $oldlist |/bin/grep "$f" |/bin/awk '{print $1}'`

new=`cat $newlist |/bin/grep "$f" |/bin/awk '{print $1}'`

if test -z "$old" ; then

#/usr/bin/chattr -i $oldlist

/usr/bin/md5sum $f >> $oldlist

#/usr/bin/chattr +i $oldlist

#exit 0

else

if test "$new" != "$old" ; then

tar -jpcf $bakdir/`basename $f`_$dt.bz2 $f &> /dev/null

sed -i "s/$old/$new/g" $oldlist

echo "$dt the $host $f was changed" >> $log

echo "#" >> $log

echo "The $f changed time:" >> $log

/bin/ls -l --time-style=long-iso $f >> $log

echo "#" >> $log

echo "The $host last 3 login user:" >> $log

/usr/bin/last |/usr/bin/head -3 >> $log

echo "#" >> $log

#echo "$dt the $host $f was changed" |mail -s "check $host $f" jiank

#else

#echo "$dt the $host $f is normal" >> $log

fi

fi

done

fi

fi

脚本配置文件:

/etc/passwd

/etc/group

/etc/shadow

md5sum命令的常见用法:

md5sum 文件名#查看某一个文件的MD5值

md5sum *.html#查看当前目录下某一类型文件的MD5值,这里是html

md5sum *#查看当前目录下所有文件的MD5值

md5sum -c 保存MD5值的文件名#根据保存MD5值的文件里的内容比对文件是否有变化

find /dir -type f -print0|xargs -0 md5sum > ~/md5  #查看某个目录下所有文件的MD5值

linux脚本一致性判断,生产环境之文件一致性检测脚本相关推荐

  1. linux 正则查找email_Linux生产环境上,最常用的一套“Sed“技巧

    sed命令应用广泛,使用简单,是快速文本处理的利器.它其实没多少技巧,背诵.使用是最合适的学习渠道,属于硬技能.但它又很复杂,因为高级功能太多.本篇不去关注sed的高级功能,仅对常用的一些操作,进行说 ...

  2. linux网卡slave状态,生产环境中linux bonding 主备模式slave网卡切换的方法

    linux bonding 主备模式slave网卡切换的方法 我们有时候做演练或测试,测试bonding slave网卡切换,或者疑是因为一块网卡有问题,想切换到另外一块slave网卡,通常情况下,我 ...

  3. bash 脚本中激活conda环境_ubuntu18.10目标检测算法环境部署+开机自启动脚本创建screen下的web服务...

    内容概要 cuda+cudnn+python环境安装 ubuntu18的开机自启动脚本 screen服务开启 以我个人的实践来看,把python开发的算法封装成webserver的服务供前端程序调用是 ...

  4. html文件脚本,我想要从html文件或js脚本执行jsx脚本

    是的,这是可行的,但努力量取决于您的平台.正如Loic提到的,如果您的目标是让远程用户打开服务器上的网页来执行此操作,那么我所呈现的就是客户端解决方案,但这并不奏效.你最好建立一个完成所有这些工作的W ...

  5. python 增量备份mysql_Python 生产环境MySQL数据库增量备份脚本

    MySQL数据库常用的办法是通过MySQLdump导出sql进行备份,但是不适合数据量很大的数据库,速度,锁表是两个严重的问题.前面写了一遍文章介绍xtrabackup的热备工具,见 http://w ...

  6. python比较数据库表今天跟前一天数据增量,Python 生产环境Mysql数据库增量备份脚本...

    Mysql数据库常用的办法是通过mysqldump导出sql进行备份,但是不适合数据量很大的数据库,速度,锁表是两个严重的问题.前面写了一遍blog介绍xtrabackup的热备工具.下面的脚本是基于 ...

  7. fastdfs搭建_记一次生产环境FastDFS文件系统安装部署过程

    概述 因为前面在做FastDFS文件系统安装部署介绍时我们已经测试将文件上传成功了,但我们无法下载.因此安装Nginx作为服务器以支持Http方式访问文件.同时,后面安装FastDFS的Nginx模块 ...

  8. shell脚本:判断本地和远程文件是否存在

    判断本地文件是否存在 #! bin/sh file=$1 if [ -f "$file" ]; thenecho $file elseecho "no such file ...

  9. Linux权限委派(生产环境必备)

    权限委派就是让普通用户能获得管理员权限的一种方式 演示:/etc/sudoers文件操作,暂无pam模块高级设计 例如,普通用户想要获得创建用户的权限: 1.在root账户下 vim /etc/sud ...

最新文章

  1. 消息中间件系列第2讲:如何进行消息队列选型?
  2. FreeBSD最小化安装没有man解决方法
  3. 计算机硬件四大部分组成部分,2014考研计算机大纲 组成原理部分四大变化解析...
  4. python前缀表达式求值_python数据结构与算法 11 后缀表达式求值
  5. 寄存器在哪里_二、汇编之寄存器
  6. Python教程:推荐一个比 open 读文件还好用、方便的库
  7. 多个视频切换时,只改变SourceFilter,不改变Filter Graph中其他Filter的C#实现
  8. Java泛型的不变性和作用域
  9. nlp 命名实体识别 算法_中文命名实体识别算法 Lattice LSTM
  10. Python 动态获取对象的属性和方法(内含inspect)
  11. CCCF译文 | 从计算思维到计算行动*
  12. ios系统脚本服务器加速,提高iOS项目的编译速度
  13. android 通过访问 php 接受 or 传送数据
  14. Redis Cluster集群的搭建与实践
  15. windows上查看和设置weblogic的编码格式
  16. Gson反序列化详解
  17. dsp31段最佳调音图_车载dsp功放调音小经验分享!dsp调音31段EQ调音图与皇帝位时间延迟调整...
  18. 《TCPIP详解》卷一系列解读
  19. No MyBatis mapper was found in ‘[xx.mapper]‘ package. Please check your configuration.特殊处理
  20. voip和rtc_VoIP语音通话研究【进阶篇(四):freeswitch+webrtc+sip.js的通话】

热门文章

  1. python字典表示摩尔斯电码_Python中的摩尔斯电码翻译器
  2. ESP32 开发笔记(二)OLED ssd1306 apds9960 手势控制
  3. 清除linux挖矿木马[crypto]的过程
  4. 计算机未来的发展趋势三百字,用牛顿电脑苹果机器人写作文三百字
  5. [分享]iOS开发 - 网络总结
  6. 生产系统搭建spark,基础环境注意事项
  7. 【UE4】在 Content 目录中查看、筛选资产
  8. 怎样与你的懒蛋同事相处?
  9. 宝茱姐被丑不垃圾香菇蘑菇头拖下水
  10. 三维GIS可视化技术在智慧城市基本建设中的作用