Bash 用于检查目录中文件的监视工具

Bash 用于检查目录中文件的监视工具,bash,scripting,Bash,Scripting,我每天有四个文件进入目录C:/Desktop/文件夹,格式如下: DD/MM/YYYY/HH/MM/SS/File 示例: 01/01/2018/01:01:00 01/01/2018/01:02:00 01/01/2018/01:03:00 01/01/2018/01:04:00 我希望我的脚本仅在24小时内第4个文件出现以下情况时向我发送电子邮件: 2018年1月1日/01:04:00未进入邮箱。我无法执行=操作,因为日期每天递增1,例如: 2018年1月1日/01:01:00然后 20

我每天有四个文件进入目录C:/Desktop/文件夹,格式如下:

DD/MM/YYYY/HH/MM/SS/File
示例:

01/01/2018/01:01:00
01/01/2018/01:02:00
01/01/2018/01:03:00
01/01/2018/01:04:00
我希望我的脚本仅在24小时内第4个文件出现以下情况时向我发送电子邮件:

2018年1月1日/01:04:00未进入邮箱。我无法执行=操作,因为日期每天递增1,例如:

2018年1月1日/01:01:00然后 2018年1月2日/01:01:00

代码:

#/bin/bash
监视器\u dir=/path/to/dir
电子邮件=me@me.com
文件=$(查找“$monitor\u dir”-最大深度1 |排序)
IFS=$'\n'
虽然是真的
做
睡眠5s
newfiles=$(查找“$monitor\u dir”-最大深度1 |排序)

added=$(comm-13您可能需要使用此-。这里的关键是使用
inotifywait
我在使用此功能时遇到了一些问题
 #!/bin/bash

 monitor_dir=/path/to/dir
 email=me@me.com

 files=$(find "$monitor_dir" -maxdepth 1 | sort)
 IFS=$'\n'

 while true
 do
   sleep 5s

   newfiles=$(find "$monitor_dir" -maxdepth 1 | sort)
   added=$(comm -13 <(echo "$files") <(echo "$newfiles"))

   [ "$added" != "" ] && find $added -maxdepth 1 -printf '%Tc\t%s\t%p\n' | mail -s "incoming" "$email"

   files="$newfiles"
done