#! /usr/bin/bash
#==================================================
# 脚本说明
# 使用前请先自行配置mail配置文件/etc/mail.rc
# 文件末尾添加
# set from=发送邮箱
# set smtp=smtp.163.com
# set smtp-auth-user=接收邮箱
# set smtp-auth-password=密码或者授权码
# set smtp-auth=login
# 并修改文中"自己报警接收邮箱"为自己邮箱号
#==================================================
haxi(){
file1="/etc/passwd /etc/hosts /etc/rc.d/rc.local"
# 重要文件绝对路径赋值给变量
md5sum $file1 > /root/bb.txt # 做出哈希值并记录
md5sum -c /root/bb.txt &> /dev/null # 将记录的哈希值锁定
}
panduan(){
md5sum -c /root/bb.txt | grep "FAILED" # 锁定哈希值,并且过滤出改变过的
if [ $? -eq 0 ];then # 判断过滤哈希值这一步是否成功完成
warin # 如果过滤出来,则执行
else
success "持续监控中" # 否则继续监控
fi
}
warin(){
wj=`md5sum -c /root/bb.txt | grep "FAILED"` # 将哈希值有变化的文件赋值给变量
cat >> aa.txt << EOF
$wj
EOF
# 输入重定向 将哈希值有变化的文件名称到aa.txt文件
cat aa.txt | mail -s "报警提示" 自己报警接收邮箱 # 查看aa.txt文件内容,并发送邮件
error "重要文件已经被修改,请查看邮箱" #屏幕提示
haxi # 运行此函数,重新做出哈希值,继续监控
}
haxi
while :
do
panduan
sleep 60
done
error(){
echo -e "\e[31m[`date '+%H:%M:%S'`]$@\e[0m"
sleep 0.5
}
warning(){
echo -e "\e[33m[`date '+%H:%M:%S'`]$@\e[0m"
sleep 0.5
}
success(){
echo -e "\e[32m[`date '+%H:%M:%S'`]$@\e[0m"
sleep 0.5
}
08-25
297
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
06-26
287
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)