【监控文件夹并将增加和删除的文件列表发送邮件完美脚本】-未来星开发开发团队

简介: 最近公司需求,需要监控一个远程服务器的目录是否有上传数据,因此写了这个脚本,又增加和删除,正好温习了一下md5sum 和awk命令,我太笨了,总是忘记。 记录一下:有任何问题联系我【Q9715234】     #!/bin/bash#@file: wactch folds#@author: feiyuanxing 【feiyuanxing@baidu.

最近公司需求,需要监控一个远程服务器的目录是否有上传数据,因此写了这个脚本,又增加和删除,正好温习了一下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

未来星开发团队--狒狒 QQ:9715234
相关文章
|
8月前
|
关系型数据库 MySQL 项目管理
YYDS,只用几条命令轻松搭建自己的项目管理平台jira
使用Docker快速搭建Jira的指南:首先确保已安装Docker,然后拉取`cptactionhank/atlassian-jira-software:8.1.0`和MySQL镜像。运行Jira和MySQL容器,分别绑定端口并创建jira数据库。访问Jira服务进行设置,包括选择语言、自定义设置、连接数据库、基础配置、设置密钥及管理员信息。通过Docker,便捷地部署和管理Jira,提升团队项目管理效率。
|
6月前
|
存储 数据库
软件开发必备流程之数据存储Navicate中数据,最好保存到你项目的文件当中
软件开发必备流程之数据存储Navicate中数据,最好保存到你项目的文件当中
|
8月前
|
算法 Java BI
云效产品使用报错问题之平台上导出的统计数据和 git 中使用命令导出的数据统计都对不上,如何解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
8月前
|
Android开发
自动化脚本之Android系统修改推送
自动化脚本之Android系统修改推送
43 0
|
8月前
|
存储 运维 JavaScript
[运维笔记] PowerShell (模块).模块的查找、安装、卸载、更新、保存、发布
[运维笔记] PowerShell (模块).模块的查找、安装、卸载、更新、保存、发布
341 0
|
前端开发 JavaScript 算法
ChatGPT工作提效之layedit上传多附件的解决方案(layedit赋值、layui.js底层修改、追加模式多附件上传)
ChatGPT工作提效之layedit上传多附件的解决方案(layedit赋值、layui.js底层修改、追加模式多附件上传)
341 0
|
运维
运维小笔记:清理指定后缀名文件的 powerhsell 小脚本
在运维值班每天都需要从系统导出这种数据,压缩好放在工作电脑上,解压用脚本做汇总。但是长期都没删除各个日期下的压缩包。几年下来,有上千个目录,也不知道哪些目录中有没有删除的压缩包。一个一个手删太累了,不妨做个 powershell 小脚本一键搞定吧。
111 0
jira项目笔记4-提交自动格式化
jira项目笔记4-提交自动格式化
125 0
Redmine系统通过bug号解析页面内容及下载附件
Redmine系统通过bug号解析页面内容及下载附件
124 0
Confluence 6 升级自定义的站点和空间仔细测试你的修改
修改可能对 Confluence 的后续版本不兼容,当你对 Confluence 进行升级的时候,你应该总是对你自定义修改的模板文件进行仔细的测试来确定所有的修改对新版本的 Confluence 兼容。
1173 0