【监控文件夹并将增加和删除的文件列表发送邮件完美脚本】-未来星开发开发团队
2017-01-09 15:03
435 查看
最近公司需求,需要监控一个远程服务器的目录是否有上传数据,因此写了这个脚本,又增加和删除,正好温习了一下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 -0 du -sb > $TMP_B
find $DIR -type f -print0 | xargs -0 md5sum |sort -k2n |uniq > $TMP_B
# 比较目录变化,并将变化的文件写入日志
DIFFDEL=$(diff $TMP_B $TMP_A | grep "> " | sed 's/> //g')
DIFFADD=$(diff $TMP_A $TMP_B | grep "> " | sed 's/< //g')
if [[ -z "$DIFFADD" && -z "$DIFFDEL" ]] ; then
# echo "Nothing change" >> ${oneLog}
echo "Nothing change"
else
echo "Here is the change" >> ${oneLog}
echo "" >> $LOG
echo "增加的内容为:" >> ${oneLog}
echo "$DIFFADD" |tee $TMP_C >> ${oneLog}
echo "删除的内容为:" >> ${oneLog}
echo "$DIFFDEL" |tee $TMP_C >> ${oneLog}
if [ -s $TMP_C ];
then
echo "" >> ${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}
# 将当前监控的目录结构覆盖为初始状态
find $DIR -type f -print0 | xargs -0 md5sum |sort -k2n |uniq > $TMP_A
# find $DIR -print0 | xargs -0 du -sb > $TMP_A
fi
fi
echo "====================================" >> $LOG
#清理临时文件
#rm -rf $TMP_B $TMP_C
记录一下:有任何问题联系我【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 -0 du -sb > $TMP_B
find $DIR -type f -print0 | xargs -0 md5sum |sort -k2n |uniq > $TMP_B
# 比较目录变化,并将变化的文件写入日志
DIFFDEL=$(diff $TMP_B $TMP_A | grep "> " | sed 's/> //g')
DIFFADD=$(diff $TMP_A $TMP_B | grep "> " | sed 's/< //g')
if [[ -z "$DIFFADD" && -z "$DIFFDEL" ]] ; then
# echo "Nothing change" >> ${oneLog}
echo "Nothing change"
else
echo "Here is the change" >> ${oneLog}
echo "" >> $LOG
echo "增加的内容为:" >> ${oneLog}
echo "$DIFFADD" |tee $TMP_C >> ${oneLog}
echo "删除的内容为:" >> ${oneLog}
echo "$DIFFDEL" |tee $TMP_C >> ${oneLog}
if [ -s $TMP_C ];
then
echo "" >> ${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}
# 将当前监控的目录结构覆盖为初始状态
find $DIR -type f -print0 | xargs -0 md5sum |sort -k2n |uniq > $TMP_A
# find $DIR -print0 | xargs -0 du -sb > $TMP_A
fi
fi
echo "====================================" >> $LOG
#清理临时文件
#rm -rf $TMP_B $TMP_C
相关文章推荐
- zabbix增加手机短信、邮件监控的注意要点,SSL邮件发送python脚本
- 一个监视文件夹文件数量的脚本(可发送警告邮件)
- bat脚本 删除文件夹中 JS和CSS文件中注释
- 为 FCKeditor 增加删除文件和文件夹的功能(C#)
- Eclipse Plug in 开发 学习点滴(3) - EFS(Eclipse File System 简称EFS) 获得指定目录下的 文件/文件夹 列表
- shell脚本实现查找文件夹下重复的文件,并提供删除功能
- Domino下通过vbs脚本删除指定主题邮件---脚本文件
- shell脚本监控系统负载,并在负载过大时发送邮件报警
- 一个python的邮件发送脚本,自动,定时,可以附件发送,抄送,附有说明文件 (本脚本是python的2.7.x环境下可用)
- iPhone开发 文件的增加删除查询
- 清除SVN属性文件(.svn)的windows脚本[可改为递归删除某个同名文件夹的脚本]
- 为 FCKeditor增加图片预览和删除文件、删除文件夹功能(c#)
- shell脚本监控系统负载,并在负载过大时发送邮件报警
- vbs脚本删除指定文件夹下内的子文件夹和文件
- C#监控文件夹中文件的删除、移动、创建、重命名等操作
- 利用FileSystemWatcher监控文件的更改,并发送邮件通知
- 这段代码是我用来提交svn代码,同时给团队的所有成员发送邮件的脚本。
- iPhone开发 文件的增加删除查询
- [11月31日的脚本] 从文件/文件夹的访问控制列表(ACL)移除孤立的SID (PowerShell)
- Android 控件之--发送邮件时的,收件人列表,可以自动匹配,可以删除,可以添加的。