linux检测文件变动,如何检测linux系统重要文件是否被更改的shell脚本

#!/bin/bash

#此脚本用于检测linux系统重要文件是否被改动,如果改动则用邮件报警

#建议用定时任务执行此脚本,如每5分钟执行一次,也可修改此脚本用于死循环检测

#Ver:1.0

#定义验证文件所在目录

FileDir='/var/CheckFile'

#获取主机名或自己定义

HostName=$(hostname)

#定义邮件参数:xmtp地址,发送邮件帐号,发送邮件密码,接收邮件地址,邮件主题,邮件内容

#根据你的邮件帐号密码进行修改以下四行省略的参数,smtp地址如不知道,可以百度,如163地址是stmp.163.com等

Mail_Smtp=""

Mail_User=""

Mail_Pass=""

Mail_From=""

Mail_To="63780668@qq.com"

Mail_Subject="${HostName}:There are changes to system files!"

Mail_Conntent="${HostName}:There are changes to system files!"

#定义需要验证的文件目录,/etc一般是系统重要的配置文件,其它重要的文件,如网站程序文件等,也可以添加到以下数组中,每个目录为一行,根据自己情况添加吧

CheckDir=(

/etc/

)

#生成所定义需验证的文件样本日志函数

OldFile () {

for i in ${CheckDir[@]}

do

/bin/find ${i} -type f |xargs md5sum >> ${FileDir}/old.log

done

}

#生成所定义文件新日志函数

NewFile () {

for i in ${CheckDir[@]}

do

/bin/find ${i} -type f |xargs md5sum >> ${FileDir}/new.log

done

}

#发送邮件函数

SendEMail () {

/usr/local/bin/sendEmail -f $Mail_From -t $Mail_To -s $Mail_Smtp -u $Mail_Subject -xu $Mail_User -xp $Mail_Pass -m $Mail_Conntent

}

#假如验证文件目录不存在则创建

if [ ! -d ${FileDir} ]

then

mkdir ${FileDir}

fi

#假如样本日志不存在则创建

if [ ! -f ${FileDir}/old.log ]

then

OldFile

fi

#假如没有安装sendEmail则安装

if [ ! -f /usr/local/bin/sendEmail ]

then

cd /usr/local/src/

wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz

tar -xf sendEmail-v1.56.tar.gz

cd sendEmail-v1.56

cp sendEmail /usr/local/bin

chmod 0755 /usr/local/bin/sendEmail

fi

#生成新验证日志

NewFile

#新验证日志与样本日志进行比较

/usr/bin/diff ${FileDir}/new.log ${FileDir}/old.log >${FileDir}/diff.log

Status=$?

#假如比较结果有变化,则发送邮件报警

if [ ${Status} -ne 0 ]

then

Mail_Conntent="$(grep '

SendEMail

fi

#清除新旧日志,把比较结果进行备份

/bin/mv -f ${FileDir}/diff.log ${FileDir}/diff$(date +%F__%T).log

cat /dev/null > ${FileDir}/old.log

cat /dev/null > ${FileDir}/new.log

#重新生成样本日志

OldFile

#删除目录内30天以前的比较结果备份文件

/bin/find ${FileDir} -type f -mtime +30 |xargs rm -f

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值