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

简介: 最近公司需求,需要监控一个远程服务器的目录是否有上传数据,因此写了这个脚本,又增加和删除,正好温习了一下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
相关文章
|
安全 开发者 Python
用Python找出了删除自己微信的所有人并将他们自动化删除了
用Python找出了删除自己微信的所有人并将他们自动化删除了
|
5月前
|
Ubuntu 安全 Linux
创建并使用自定义的Linux命令`autoupdate`来自动化软件更新
创建自定义Linux命令`autoupdate`简化系统更新流程。通过编写包含`apt update`, `apt upgrade`, `apt autoremove`和`apt clean`的bash脚本,实现一键自动化更新。将脚本添加到PATH环境变量,确保在任意目录可执行。适用于基于Debian/Ubuntu系统,其他发行版需调整命令。记得备份数据,必要时重启系统,并可按需扩展脚本功能。
|
6月前
|
Android开发
自动化脚本之Android系统修改推送
自动化脚本之Android系统修改推送
33 0
|
6月前
|
jenkins 测试技术 持续交付
Jenkins配置测试报告后无法正常显示或显示空的解决方法(问题集锦)
根据具体情况逐一排查上述问题,往往可以解决Jenkins配置测试报告无法正常显示或显示空的问题。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
76 0
|
6月前
|
存储 运维 JavaScript
[运维笔记] PowerShell (模块).模块的查找、安装、卸载、更新、保存、发布
[运维笔记] PowerShell (模块).模块的查找、安装、卸载、更新、保存、发布
272 0
|
6月前
|
Python
【python自动办公】批量更改Excel中大量工作表的内容(附源码 有注释)
【python自动办公】批量更改Excel中大量工作表的内容(附源码 有注释)
185 0
|
安全 jenkins 测试技术
Jenkins配置测试报告后无法正常显示或显示空白 的解决方法(问题集锦)
Jenkins配置测试报告后无法正常显示或显示空白 的解决方法(问题集锦)
457 0
|
前端开发 JavaScript 算法
ChatGPT工作提效之layedit上传多附件的解决方案(layedit赋值、layui.js底层修改、追加模式多附件上传)
ChatGPT工作提效之layedit上传多附件的解决方案(layedit赋值、layui.js底层修改、追加模式多附件上传)
311 0
|
运维
运维小笔记:清理指定后缀名文件的 powerhsell 小脚本
在运维值班每天都需要从系统导出这种数据,压缩好放在工作电脑上,解压用脚本做汇总。但是长期都没删除各个日期下的压缩包。几年下来,有上千个目录,也不知道哪些目录中有没有删除的压缩包。一个一个手删太累了,不妨做个 powershell 小脚本一键搞定吧。
104 0
|
JavaScript 容器
《大胖 • 小课》- 玩玩多文件配多进度上传
这是《大胖小课》栏目的专题一《说说文件上传那些事儿》的第4节-《玩玩多文件配多进度上传》 专题已经更新章节: 《大胖 • 小课》- 我是这样理解文件上传原理的 《大胖 • 小课》- 写一个文件上传接口 《大胖 • 小课》- 不用 js 实现文件无刷新上传 既然要说多文件配多进度上传,那就要看看单个进度是如何实现的。
118 1
《大胖 • 小课》- 玩玩多文件配多进度上传