查找命令以检查在x分钟内是否创建了没有文件

时间:2015-09-17 17:09:16

标签: linux email find

我有一个NVR系统,可将视频监控录制到Linux服务器中。这个NVR系统有时会停止录制(Bug),我想知道这种情况何时发生。

如果在过去60分钟内没有创建文件,我正在考虑使用带有脚本和cronjob的find命令向我发送电子邮件。

我想出的命令是:

find /path/to/folder/* -name "*.ts" -mmin +0 -mmin -60 -exec echo "No New Recording Available" \; | mail -s "PP-NVR" me@server.com

但是这个命令只向我发送了一个“没有新记录可用”的列表,用于超过60分钟的文件

No New Recordinf Available
No New Recordinf Available
No New Recordinf Available
No New Recordinf Available
No New Recordinf Available
...

任何人都可以帮忙!

编辑:这是我提出的脚本,但似乎它没有正常工作:

#!/bin/sh

if test 'find /path_to_folder/* -name "*.ts" -mmin +1 -mmin -10'
then
echo "No New Recording Available" | mail -s "PP-NVR" me@server.com
fi

2 个答案:

答案 0 :(得分:0)

你可以尝试结合这个 run a unix shell command if the output doesn't have a specific number of lines

vagrant@puppet ~]$ find . -name '*.ts' -mmin -1 | wc -l
0
[vagrant@puppet ~]$ touch blah.ts
[vagrant@puppet ~]$ find . -name '*.ts' -mmin -1 | wc -l
1

所以:

[vagrant@puppet ~]$ ./alert.sh
No new files
[vagrant@puppet ~]$ echo >> blah.ts
[vagrant@puppet ~]$ ./alert.sh
[vagrant@puppet ~]$ cat alert.sh
#!/bin/sh

newfiles=$(find . -name '*.ts' -mmin -1 | wc -l)

if [[ $newfiles -eq 0 ]] ; then
    echo "No new files"
fi
[vagrant@puppet ~]$

答案 1 :(得分:0)

我没有使用find的解决方案,但您可以使用inotifywait(在inotify-tools中)设置观察程序,如下所示:

Select-Object -ExpandProperty ClientId

并检查$?对于值2,这意味着它在60秒(-t 60)之后超时,没有文件被修改(-e modify)在/ path / to /文件夹及其子文件夹(-r)中。