我的 jboss 应用程序服务器生成一些相当大的日志文件,通常大约 8 到 10 gb。如何在我的 redhat linux 服务器中查看这些日志文件?
答案1
尝试使用拆分命令。
split --bytes=100M <logfile> <logfile>
是的,请更频繁地轮换日志文件。不这样做是极其严重的罪行。
答案2
我通常用它less
来查看日志文件。它可以查看巨大的日志文件(几千兆字节)。less
还可以查看压缩日志文件(以 结尾.gz
)。
您还可以使用grep
它来过滤特定的模式。
答案3
您还可以使用“head”列出前几行或使用“tail”列出文件的末尾。如果您在“head”或“tail”后附加一个数字,它将显示该行数。
艾伦
答案4
我们这里有一个类似的问题(虽然不是 JBoss,但日志文件很大),我只能说,“grep 是你的朋友”。我假设你的日志文件看起来像这样:
Dec 27 08:14:35 hostname kernel: bnx2: eth1 NIC Copper Link is Up, 1000 Mbps full duplex
Dec 27 08:14:35 hostname kernel: eth2: Link is Up 1000 Mbps Full Duplex, Flow Control: None
Dec 27 08:14:35 hostname kernel: eth3: Link is Up 1000 Mbps Full Duplex, Flow Control: None
Dec 27 08:14:36 hostname pcscd: hotplug_libusb.c:402:HPEstablishUSBNotifications() Driver ifd-egate.bundle does not support IFD_GENERATE_HOTPLUG. Using active polling instead.
(这些是从 /var/log/messages 文件中提取的,但其思想是每个条目前面都有一个时间戳)。
鉴于您的日志文件充满了时间戳,我所做的类似于以下内容:
grep '^`date "+%b %d"` 08:14' /my/log/file > /tmp/814amLog.txt
这实际上只是在查找今天的时间戳,即
grep "^Dec 27 08:14" /my/log/file > /tmp/814amLog.txt
然后我使用 less 或 vim -R 来处理 814amLog.txt 文件。这样做的目的是将它拆分成您感兴趣的一小段内容。
作为第一个回复给出的 split 命令是可用的,但根据我的经验,它给出的结果相当随意。通常我会寻找“大约这个时候”发生的事情。因此,按日期和时间进行 grep 更常用。
您可以编写一个 cron 作业脚本,在晚上检查日志文件并将其保存在适当的位置,这样您就不必临时执行此操作。我还强烈建议创建一个作业,使用 gzip 压缩一天左右之前的日志文件,因为您会惊讶于节省了多少磁盘空间。