我有一个日志记录系统,该系统每秒在Ubuntu Server中创建一个新的日志文件。我已经开发了名为“ processor.sh”的脚本,该脚本每秒运行一次,以从新创建的日志文件中提取重要信息。以前,我曾经使用watch命令无限期地运行processors.sh:
watch -n1 ./processor.sh
现在我开始使用如下所示的并行命令:
ls *.log | parallel xargs ./processors.sh
我认为使用手表连续运行是错误的事情。如何使用并行命令每秒永远运行processor.sh?
答案 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文件并关闭它时,它将开始处理。