bash - bash:无限期地使用并行命令运行脚本
问题描述
我有日志系统,可以在 Ubuntu Server 中每秒创建新的日志文件。我开发了名为“processor.sh”的脚本,它每秒运行一次,以从新创建的日志文件中提取重要信息。以前,我曾经使用 watch 命令无限期地运行processors.sh:
watch -n1 ./processor.sh
现在我开始使用如下并行命令:
ls *.log | parallel xargs ./processors.sh
我认为使用手表连续运行它是错误的。如何使用并行命令每秒永远运行 processor.sh?
解决方案
这是一种方法:
while true; do
parallel ./processors.sh ::: *.log
sleep 1
done
但我认为这会更好:
inotifywait -qmre MOVED_TO -e CLOSE_WRITE --format %w%f `pwd` |
parallel ./processors.sh
这将在另一个进程停止写入 .log 文件并关闭它时开始处理。
推荐阅读
- php - Laravel 5.6 - 在 updateOrCreate 之后获取更改的值
- javascript - 按钮 EXPAND ALL 的限制
- javascript - es6数组方法如何将多维数组转化为图表数据
- java - Intellij 包 org.testng 不存在
- javascript - 我应该在 javascript 中定义多少个嵌套对象?
- django-templates - Django url命名空间给出错误
- typescript - 我们如何在同一个 repo 中的两个 TypeScript 项目之间共享代码?
- regex - 只知道一小部分字符串的正则表达式替换
- android - 从仅包含使用 Android Espresso 的图标的 TabLayout 中单击 Tab 后检查片段可见性
- linux - 在 Elasticsearch 中恢复特定索引