最近公司需求,需要监控一个远程服务器的目录是否有上传数据,因此写了这个脚本,又增加和删除,正好温习了一下md5sum 和awk命令,我太笨了,总是忘记。
记录一下:有任何问题联系我【Q9715234】
#!/bin/bash
#@file: wactch folds
#@author: feiyuanxing 【feiyuanxing@baidu.com】
#@date: 2016-12-13
#@version: 2.1.0
PATH=/bin:/sbin:/usr/bin:/usr/sbin/:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
# 监控的目录
DIR=/home/users/feiyuanxing/
# 日期变量
DATE=`date +%F_%H:%M`
# 临时文件
TMP_A=/home/users/feiyuanxing/script/bijiao/tmp/a.txt
TMP_B=/home/users/feiyuanxing/script/bijiao/tmp/b.txt
TMP_C=/home/users/feiyuanxing/script/bijiao/tmp/c.txt
# 发送的字符串
oneLog=/home/users/feiyuanxing/script/bijiao/log/oneLog.log
# 日志文件
LOG=/home/users/feiyuanxing/script/bijiao/log/foldchange.log
# 遍历指定目录下的文件大小及路径并重定向到日志文件
#find DIR−print0|xargs−0du−sb>TMP_B
find DIR−typef−print0|xargs−0md5sum|sort−k2n|uniq>TMP_B
# 比较目录变化,并将变化的文件写入日志
DIFFDEL=(diffTMP_B TMPA|grep">"|sed′s/>//g′)DIFFADD=(diff TMPATMP_B | grep "> " | sed 's/< //g')
if [[ -z "DIFFADD" && -z "DIFFDEL" ]] ; then
# echo "Nothing change" >> oneLogecho"Nothingchange"elseecho"Hereisthechange">>{oneLog}
echo "" >> LOGecho"增加的内容为:">>{oneLog}
echo "DIFFADD"|teeTMP_C >> oneLogecho"删除的内容为:">>{oneLog}
echo "DIFFDEL"|teeTMP_C >> ${oneLog}
if [ -s TMPC];thenecho"">>{oneLog}
echo "It modified at DATE"{oneLog}
echo "It modified at DATE">>{oneLog}
echo oneLog>>{LOG}
mail -s "(echo−e"狒狒:更新通知\nContent−Type:text/html")"feiyuanxing@baidu.com<{oneLog}
echo hhh`cat ${oneLog}`hhh
echo "发送邮件成功"
echo " " > {oneLog} # 将当前监控的目录结构覆盖为初始状态 findDIR -type f -print0 | xargs -0 md5sum |sort -k2n |uniq > TMP_A # findDIR -print0 | xargs -0 du -sb > TMPAfifiecho"====================================">>LOG
#清理临时文件
#rm -rf TMPBTMP_C