首页 » 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 字节, 186 次)
  md5check.rar (876 字节, 186 次)使用方法
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) 发表评论