bash - 使用 bash,如何在文件停止更新时收到警报?
问题描述
如果文件在 x 分钟内没有更改,我想通过电子邮件收到警报。
就上下文而言,应用程序在无人值守的系统上 24/7 全天候运行收集推文。如果存储推文的文件在 x 分钟内没有更改,我需要去检查应用程序是否意外终止。
请问有什么想法吗?我考虑watch
过,但总的来说我是 bash 和 Linux 的新手。
解决方案
例如,在目录“tmp”中有一个名为“tweets”的文件,我们可以运行一个脚本,将 find 与 mmin 标志结合起来。我们可以用 -5 表示过去 5 分钟内对文件的任何更改。如果 find 命令返回的文件数不为 0(通过管道到 wc -l),我们然后运行该命令发送电子邮件。
#!/bin/bash
if [[ "$(find /tmp -name "*tweets" -mmin -5 | wc -l)" != "0" ]]
then
echo "There is an issue" | mailx -s alert someone@someemail.com
fi
然后可以将其设置为每 5 分钟运行一次 cron 作业。
推荐阅读
- python - 张量列表成张量
- python - 如何修复我在 scikit-learn 中的线性回归中遇到的错误
- scala - 在 scala 中从 Try 中提取值时丢失路径相关类型
- android - 改造 onResponse 方法未执行
- javascript - 重复使用 clearInterval 和 clearTimeout 不起作用
- c# - 如何在运行时修改 .Net 程序集并保留这些更改
- python-2.7 - 用于 API 调用的 Python 库,比请求更快
- javascript - Discord.js Trouble comprehending members.role (Formatting)
- google-chrome - 即使注册了服务工作也无法通过 Chrome Lighthouse PWA 测试
- express - Express X-Powered-By 仍然在 css 文件上