首页 > 解决方案 > 如何实时读取目录中创建的 Unix 日志?

问题描述

我有几个使用主(run_all.sh,内容如下)脚本调用的脚本(sh)。因此,每当下标运行时,它都会在日志目录中创建日志。

sh run_one.sh
if [ $? -gt 0 ] ; then
exit 1
fi
sh run_two.sh
if [ $? -gt 0 ] ; then
exit 1
fi
sh run_three.sh
if [ $? -gt 0 ] ; then
exit 1
fi

例如,我运行run_all.sh第一个脚本run_one.sh开始执行并在日志目录中创建一个日志文件 ( log_run_one.log)。因此,为了监控我使用的日志:

tail -f run_one.log

是否可以制作一个在日志目录中运行的脚本(sh)来检查是否创建了新文件并对创建tail -f file_name.log的新日志/文件执行操作。它应该能够监视新文件/日志的日志目录,并tail在创建它们时一个接一个地对它们执行操作。我应该从哪里开始?任何帮助将不胜感激。

我看起来通过构建一个利用一些 rsync 属性来监视目录的服务器,在任何其他编程语言中都会更容易。

标签: unixredhatrsyncinotify

解决方案


您可以创建一个 cron 作业来运行查找以检查是否在日志文件夹中创建了任何新文件(查看下面关于如何使用 find 和 xargs 在过去几天/时间内查找和列出新文件的文章)然后运行上面命令提供的日志文件的 tail -f列表

Linux命令检查文件系统中的新文件


推荐阅读