- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在 Linux 系统上有一系列应用程序,我需要基本上不断地“流”出或什至只是“尾”出,但挑战在于文件名不断滚动和变化。
所有日期都是编码的(日期采用不同的格式),然后每个都有不同的递增格式。
它们中的大多数从一个开始并增加,但一个没有扩展名,然后在第一个文件之后添加一个扩展名,另一个增加一个数字,但是一旦达到 99 卷就会增加一个 alpha 并将数字返回到 01然后再次上升,因为它滚动得如此之快。
我只有操作系统级别的 shell 脚本、操作系统命令行实用程序和 perl 可供我处理这种情况,以便另一个应用程序获取和读取这些日志。
新文件总是在它开始写入新文件时创建,并且不同日志组(有些我正在阅读,有些我没有)被写入同一目录,所以我不能只拾取目录中的任何内容。
如果我只是'tail -n 1000000 -f |'他们今天这适用于我正在使用的阅读器应用程序,直到文件发生变化,我无法在阅读器应用程序中设置文件列表范围,但可以对其进行预处理,因此它们基本上以连续流的形式出现在读者面前,而不是直接出现在读者面前调用命令来读取它们。 simple Perl log reader like this也适用于静态文件名但不适用于动态文件名。重要的是我不重新处理任何日志行,而只是捕获写入日志的新行。
我承认我不是任何形式的 Perl 大师,到目前为止我能找到的最佳答案/线索是使用 Perl's Glob function to possibly这样做但是我发现的例子基本上在每次运行时重新处理所有文件然后似乎停止了。
我正在尝试处理的跨多个应用程序的示例文件名..
如上所示,文件没有相同的 inode ,并且不可能简单地监视目录的变化,因为很多东西都写在那里。在开发系统上,它有超过 50 个日志被写入目录和数千个文件,我只试图检索 5 个。我正在查看是否可以使用 multitail 来尝试该建议,但它目前不可用并安装任何环境中额外的 RPM 通常是一场长达数月的战斗。
ls -i24792 APPA_180901.log24805 APPA__180902.log17011 APPA__180903.log17072 APPA__180904.log24644 APPA__180905.log17081 APPA__180906.log17115 APPA__180907.log
所以我真正想要做的事情的根源只是一个连续的流,不管文件名是否改变,并且不必重复运行提取命令,也不必在数据馈送中有大的中断,而一些脚本会发现文件被登录到已更改。我不需要解析内容(我的其他应用程序会这样做)。有没有一种简单的方法来处理这个不断变化的文件名?
最佳答案
如何使用 Linux inotify 监控日志目录的变化,例如Linux::inotify2
?然后您可以检测何时创建新日志文件,停止从旧日志文件读取并开始从新日志文件读取。
关于linux - 如何在 perl 中流式传输不断更改文件名的日志文件内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53512417/
如果这不是一个错误,那就是另一个错误。如果不是那样的话,那就是别的东西了。我觉得我的项目已经改变了很多,现在只是试图解决代码签名问题,结果一切都搞砸了。我严格按照说明进行操作,但出现错误,例如当前的“
我不确定是否有一些我不知道的内置变量或规则,或者 make 是否有问题,或者我只是疯了。 对于我的一个项目,我有一个如下的 makefile: CC=g++ CFLAGS=-O3 `libpng-co
我有大约 10 个 div,它们必须不断翻转,每个 div 延迟 3 秒 这个 codrops 链接的最后一个效果是我正在寻找的,但无需单击 div http://tympanus.net/Devel
我如何使用 jQuery 持续运行 PHP 脚本并每秒获取响应,以及将鼠标上的少量数据发送到同一脚本? 我真的必须添加一些随机扩展才能让这么简单的计时器工作吗? 最佳答案 To iterate is
JBoss 4.x EJB 3.0 我见过如下代码(大大简化): @Stateless @TransactionAttribute(TransactionAttributeType.NOT_SUPPO
使用 PHPStorm,我试图忽略每次尝试进行 git 提交时 pop 的 workspace.xml。 我的 .gitignore 看起来像: /.idea/ .idea/workspace.xml
我是一名优秀的程序员,十分优秀!