bash:无限期地使用并行命令运行脚本

时间:2019-12-28 20:34:48

标签: bash shell gnu-parallel

我有一个日志记录系统,该系统每秒在Ubuntu Server中创建一个新的日志文件。我已经开发了名为“ processor.sh”的脚本,该脚本每秒运行一次,以从新创建的日志文件中提取重要信息。以前,我曾经使用watch命令无限期地运行processors.sh:

watch -n1 ./processor.sh 

现在我开始使用如下所示的并行命令:

ls *.log | parallel xargs ./processors.sh

我认为使用手表连续运行是错误的事情。如何使用并行命令每秒永远运行processor.sh?

1 个答案:

答案 0 :(得分:0)

这是一种方法:

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文件并关闭它时,它将开始处理。