监视日志文件直至其完成

监视日志文件直至其完成

我是一名高中生,正在尝试用 bash 编写一个脚本,该脚本将使用“qsub”命令在使用不同数量内核的超级计算机上提交作业。然后,该脚本将从每个生成的日志文件(称为“log.lammps”)中获取内核数量和超级计算机完成模拟所用时间的数据,并将这些数据存储在单独的文件中。

由于每个日志文件需要不同的时间才能完全生成,因此我遵循了以下步骤 监视文件直到找到字符串 当日志文件的最后一行包含字符串“Total wall time: ”时,我的脚本继续执行。

目前,我正在循环中使用以下代码,以便可以针对所有指定数量的核心运行该代码:

( tail -f -n0 log.lammps & ) | grep -q "Total wall time:"

但是,运行包含此段代码的脚本会导致 log.lammps 文件被截断,并且即使 log.lammps 文件已完全生成,脚本也无法完成。

有没有其他方法可以使我的脚本仅在提交的作业完成时继续运行?

相关内容