我正在开发一个 Java EE 应用程序,它的日志将在 Linux 服务器内生成。
我使用了tail -f -n -10000 MyLog
它显示该日志文件的最后 1000 行的命令。
现在我在 Putty 中按下 Ctrl + c 来断开日志更新(因为我担心它可能会被新请求更新,我会丢失我的数据)
在显示的结果中,如何搜索特定关键字?(使用 / 字符串名称进行搜索,但它不起作用)
我正在开发一个 Java EE 应用程序,它的日志将在 Linux 服务器内生成。
我使用了tail -f -n -10000 MyLog
它显示该日志文件的最后 1000 行的命令。
现在我在 Putty 中按下 Ctrl + c 来断开日志更新(因为我担心它可能会被新请求更新,我会丢失我的数据)
在显示的结果中,如何搜索特定关键字?(使用 / 字符串名称进行搜索,但它不起作用)
两种方式:
tail -n 10000 MyLog| grep -i "search phrase"
tail -f -n 10000 MyLog | less
第二种方法将允许您使用 / 进行搜索。它只会向下搜索,但您可以按 g 返回顶部。
编辑:在测试中,似乎方法 2 并不能很好地工作......如果你点击文件的末尾,它会冻结,直到你 ctrl+c tail 命令。
将您的输出通过管道传输到 PAGER。
tail -f -n LINE_CNT LOG_FILE | less
那么你可以使用
/SEARCH_STRING
您需要将输出重定向tail
到搜索实用程序(例如grep
)。您可以分两步执行此操作:将输出保存到文件,然后在文件中搜索;或一口气:将输出通过管道传输到搜索实用程序
要查看文件中的内容(以便您可以按 Ctlr+c),您可以使用以下tee
命令,该命令将输出复制到屏幕和文件中:
tail -f -n -10000 MyLog | tee <filename>
然后在文件中搜索。
如果您想将结果通过管道传输到搜索实用程序中,您可以使用与上述相同的技巧,但使用您的搜索程序而不是tee
即时控制终端输出
在 Putty 等终端中运行任何命令时,您可以使用CTRL-S
andCTRL-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 是一个非常好的学习工具,简而言之,您可以使用它来跟踪多个文件。非常便利。