如何实时读取在目录中创建的Unix日志?

时间:2018-08-31 18:26:54

标签: unix redhat rsync inotify

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

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属性来监视目录来构建服务器,我看起来在任何其他编程语言中都会更容易。

1 个答案:

答案 0 :(得分:0)

您可以创建一个cron作业来运行查找,以检查是否在日志文件夹中创建了任何新文件(有关如何在xargs中使用find和在最近几天/时间内查找和列出新文件的信息,请参见以下文章) 然后只需运行尾部-f 上面命令提供的日志文件列表

Linux command to check new files in file system