在redhat linux服务器上读取大日志文件的问题

我的jboss应用程序服务器生成一些相当大的日志文件,通常大约8到10 GB。我怎样才能在我的红帽linux服务器中查看这些日志文件?

尝试使用split命令。

split --bytes=100M <logfile> <logfile> 

是的,更频繁地旋转你的日志文件。 这是一个令人发指的罪行。

我通常使用less来查看日志文件。 它可以查看巨大的日志文件(多千兆字节)。 less也能够查看压缩的日志文件(以.gz结尾)。

你也可以使用grep来筛选特定的模式。

您也可以使用“头”列出第一行或“尾”列出文件的结尾。 如果在“head”或“tail”之后附加数字,则会显示该行数。

艾伦

我们在这里有一个类似的问题(虽然不是JBoss的大日志文件),我只能说“grep是你的朋友”。 我假设你的日志文件是这样的:

 12月27日08:14:35主机名内核:bnx2:eth1网卡铜连接为Up,1000 Mbps全双工
 12月27日08:14:35 hostname内核:eth2:链接已达1000 Mbps全双工,stream量控制:无
 Dec 27 08:14:35 hostname kernel:eth3:Link Up 1000 Mbps Full Duplex,Flow Control:None
 12月27日08:14:36 hostname pcscd:hotplug_libusb.c:402:HPEstablishUSBNotifications()驱动程序ifd-egate.bundle不支持IFD_GENERATE_HOTPLUG。 使用主动轮询。 

(这些是从/ var / log / messages文件中提取的,但是每个条目的前面都有一个时间戳)。

鉴于你的日志文件充满了时间戳,我所做的是类似于以下内容:

 grep'^`date“+%b%d”`08:14'/ my / log / file> /tmp/814amLog.txt 

这真的只是为今天的时间戳grep'ing,即,

  grep“^ Dec 27 08:14”/ my / log / file> /tmp/814amLog.txt 

然后我更less或vim – 814amLog.txt文件。 这个想法是把它变成一个你感兴趣的小块。

作为第一个答复给出的拆分命令是可用的,但以我的经验给出相当任意的结果。 通常我正在寻找“关于这个时间”发生的事情。 因此,date和时间的grep'ing更经常使用。

你可以编写一个cron作业来在晚上通过你的日志文件来grep,并把它们保存在一个合适的地方,所以你不必特意做。 我也强烈build议你创build一个工作来压缩大约一天左右的压缩日志文件,因为你会惊讶于你节省了多less磁盘空间。