首页 » Linux » liunx基础 » 阅读文章
网站文件监控脚本
标签:文件监控
作用和原理
通过MD5对比文件来实现文件是否被更改增加和删除来防止黑客增加木马
要求
空间运行客户运行SH脚本(ps:一般的cpanel空间都允许,在中文名称为:时间守护作业,英文:Cron jobs)
脚本
#!/bin/sh #PREFIX参数可随意设置,作为空间识别符,知道是哪个空间的网站 PREFIX="FTP1" #MON_DIR为监控目录,设置你对应的网站目录 MON_DIR="/var/www/html/public_html" #日志存放对比文件目录,不要设置到网站目录里 LOGDIR="/var/www/html/log" if [ ! -d $LOGDIR ]; then mkdir $LOGDIR fi FILE1=$LOGDIR"/__diff.1" FILE2=$LOGDIR"/__diff.2" DIFF_CONTENT=$LOGDIR"/__diff_result__" echo "" > ${FILE2} echo "" > ${DIFF_CONTENT} #通过grep -i -v "file" file可设置为你不想比较的内容,如图片或95付款日志等 find ${MON_DIR} -type f | grep -i ".jpg" -v | grep -i ".png" -v | grep -i ".gif" -v | grep -i "error_log" -v | grep -i "logs/" -v|grep -i "95epay_pay_error_log.txt" -v | xargs md5sum >>${FILE2} 2>/dev/null DIFF_RESULT=`diff ${FILE1} ${FILE2} > ${DIFF_CONTENT}` if [ ! -e $FILE1 ]; then cp $FILE2 $FILE1 fi rm -f $FILE1 cp $FILE2 $FILE1 if [ -s $DIFF_CONTENT ]; then #所有文件修改记录都存放在以下文件中 date >>"$LOGDIR/logs.log" cat ${DIFF_CONTENT} >>"$LOGDIR/logs.log" #邮件提醒 date >"$LOGDIR/logemail.log" cat ${DIFF_CONTENT} >"$LOGDIR/logemail.log" #Alert! file changed可改为任意 ,此处为邮件标题,$PREFIX参数最好不改 #info@ezencart.com换为自己的邮箱 #并非所有linux主机都包含mail功能,脚本经测试能发邮件,发不出邮件请检查主机原因 mail -s "Alert! $PREFIX File Changed" info@ezencart.com<$LOGDIR/logemail.log fi
md5check.rar (876 字节, 177 次)
使用方法
1.根据注释修改脚本
2.MON_DIR和LOGDIR填写的是空间的绝对路径,可以通过运行php文件
echo getcwd();
获取
3.将脚本上传到空间中,并修改权限为777(放到到一个隐蔽的目录中),然后那cpanel举例
开始可以设置为没分钟执行1次,第一次执行会生成文件列表并md5计算,不会邮件通知,然后修改文件测试,测试没问题后可以修改为1小时,或者1天1次
邮件通知
其中小于号表示文件被移除,大于号表示文件增加,上面邮件表示删除了af.txt 增加了ad.txt a.txt内容变动
小技巧
移动139邮箱中的邮件可以发送到手机上,我们可以将邮箱改为自己的139邮箱,来实现实时掌控
评论 共0条 (RSS 2.0) 发表评论