gpt4 book ai didi

linux - 监视多个目录以创建文件;如果它们不存在,请发送电子邮件

转载 作者:太空宇宙 更新时间:2023-11-04 11:10:02 24 4
gpt4 key购买 nike

我有一个有点棘手的问题。我需要监视一组文件以查看是否在其中创建了一系列文件。我想大约每 10 分钟监控一次文件,如果还没有创建任何文件,我会通过电子邮件报告。这似乎很容易通过查找来完成,我正在考虑做这样的事情,我在其中找到修改时间为 10 分钟的文件,并查看每十分钟有多少变化(应该在 10 左右左右。)

find . -maxdepth 2 -type f -mmin -10 -ls  2>/dev/null | wc -l

我遇到的问题是时间不完全是 10 分钟,有时多一点,有时少一点。此外,我被要求不仅要检查时间,还要检查其中包含时间戳的文件名,例如 processa_15:30(和另一个目录中的 processb_15:30,等等)。

我相信 inotifywait 对这样的事情很有用,但它没有安装,我认为我无法安装它。我更愿意使用 bash 或 Perl 来执行此操作,并且它在 CentOS 6.0 系统上。但是,我也可能无法安装任何 Perl 模块来执行此操作。任何建议将不胜感激。

最佳答案

如果您要监控创建的文件数量,您是否考虑过制作一个脚本来检查文件数量,就像您使用 find 所做的那样,休眠约 10 分钟(如果它们的工作量多一点或少一点)您的限制,即 +-30 秒),检查并比较两个数字和循环?这样你就可以将这样的东西用作函数:

find1=`find . -maxdepth 2 -type f -mmin -10 -ls  2>/dev/null | wc -l`
sleep 600
find2=`find . -maxdepth 2 -type f -mmin -10 -ls 2>/dev/null | wc -l`

if [ "$find1" == "$find2" ]; then
echo "no new files..." | mail -s "$date : Alert" user@domain.com
else
exit
fi

这样您就可以比较这两个数字,如果没有变化则发送电子邮件。

要添加+-30s的限制,可以在find1和find2之前和之后的30s运行查找并将数字分配给变量,并且您可以生成额外的条件,例如if find1 = find2,但是数字在前后30s内不同,然后电子邮件。

您还可以根据文件名时间戳等使用 if AND 等进一步检查 if 循环

这样您就可以在循环中连续运行该函数。

关于linux - 监视多个目录以创建文件;如果它们不存在,请发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23622472/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com