14

我正在开发一个 Java EE 应用程序,它的日志将在 Linux 服务器内生成。

我使用了tail -f -n -10000 MyLog 它显示该日志文件的最后 1000 行的命令。

现在我在 Putty 中按下 Ctrl + c 来断开日志更新(因为我担心它可能会被新请求更新,我会丢失我的数据)

在显示的结果中,如何搜索特定关键字?(使用 / 字符串名称进行搜索,但它不起作用)

4

5 回答 5

16

两种方式:

tail -n 10000 MyLog| grep -i "search phrase"

tail -f -n 10000 MyLog | less

第二种方法将允许您使用 / 进行搜索。它只会向下搜索,但您可以按 g 返回顶部。

编辑:在测试中,似乎方法 2 并不能很好地工作......如果你点击文件的末尾,它会冻结,直到你 ctrl+c tail 命令。

于 2012-04-27T12:03:31.330 回答
15

将您的输出通过管道传输到 PAGER。

tail -f -n LINE_CNT LOG_FILE | less

那么你可以使用

/SEARCH_STRING
于 2012-04-27T12:00:21.267 回答
1

您需要将输出重定向tail到搜索实用程序(例如grep)。您可以分两步执行此操作:将输出保存到文件,然后在文件中搜索;或一口气:将输出通过管道传输到搜索实用程序

要查看文件中的内容(以便您可以按 Ctlr+c),您可以使用以下tee命令,该命令将输出复制到屏幕和文件中:

tail -f -n -10000 MyLog | tee <filename>

然后在文件中搜索。

如果您想将结果通过管道传输到搜索实用程序中,您可以使用与上述相同的技巧,但使用您的搜索程序而不是tee

于 2012-04-27T12:00:24.423 回答
0

即时控制终端输出

在 Putty 等终端中运行任何命令时,您可以使用CTRL-SandCTRL-Q停止和开始向 Putty 终端输出。

使用 grep 排除行

如果要排除包含特定模式的行,请使用grep -v以下命令删除包含字符串 INFO 的所有行

tail -f logfile | grep -v INFO 

显示不包含单词 INFO 或 DEBUG 的行

tail -f logfile | grep -v -E 'INFO|DEBUG'

最后,所有拖尾工具的母亲和父亲是xtail.pl

如果您的主机上有 perl,xtail.pl 是一个非常好的学习工具,简而言之,您可以使用它来跟踪多个文件。非常便利。

于 2012-04-27T23:50:22.180 回答
0

你可以用更少的命令打开它

less logfile_name

当您打开文件时,您可以在此处使用本指南

提示:我建议,首先使用 G 转到文件末尾,然后再使用 Backward Search

于 2020-03-31T13:40:34.373 回答