Linux 查询日志常用指令大全

上周,一位客户问我,“如何在 Linux 上查看日志文件?”我帮他整理了一下,就在这里分享一下。

首先不得不提一下tail命令。
这非常实用,用于读取文件末尾。
例如,如果要查看 a.log 文件的最后 1 0 行,请运行 tail -n 1 0 a.log。
如果您想实时监控日志文件(例如仍在更新时),请使用 tail -f a.log。

接下来我们有一个头部和一个尾部配对,用于读取文件的开头。
例如,如果您想查看a.log的前1 0行,请使用head -n 1 0 a.log。

cat命令除了显示文件外,还可以连接并显示多个文件的内容。
例如,如果要查看a.log和b.log的内容,请键入cat a.log b.log。
如果要创建新文件,请运行cat > newfile.log,输入内容,然后按Ctrl+D退出。

两者现在都经常以分屏方式显示文件。
越多,越简单。
阅读完毕后,按空格键翻页,按 Enter 逐行滚动,按 q 退出。
“less”具有更多功能,允许您向前和向后翻页、搜索内容和设置书签。

说到搜索,sed 命令的功能非常强大。
流编辑器,允许您替换、删除和插入文件内容。
例如,如果要将a.log中的所有“hello”替换为“world”,只需运行sed 's/hello/world/g' a.log即可。

最后,nl 命令可以向文件添加行号。
这非常有用。
例如,如果您想要查看 a.log 的内容并在每行之前添加行号,请键入 nl a.log。

这些命令在 Linux 上常用。
一旦掌握了这些,日志管理和查看文件就会变得容易得多。
无论如何,这取决于你,习惯就好。
我还在思考这个问题以及如何结合这些命令来更有效地处理日志文件。

Linux如何查看服务日志 journalctl日志管理详解

抱歉,兄弟,我对你提出的有关检查 Linux 中的服务日志的问题有经验。
记得有一次,2 01 8 年,我在一家互联网公司做运维。
当时我们使用的是CentOS,管理系统中的注册表真是一件让人头疼的事情。

当时我们都是用Journalctl来显示日志。
这个东西比之前用的日志文件方便多了。
它可以直接为您列出所有记录,而无需像以前那样一一浏览文件。

我当时最常用的是直接运行命令:
期刊块
一旦运行该命令,所有记录都会出现,但信息量非常大,很难查找。
因此,我必须使用参数来过滤。
例如,如果我想查看 nginx 服务日志,我应该这样做:
Journalctl -u nginx.service
这次只显示nginx服务日志。
有时候,我想查看某个时间段的日志,比如我想查看昨晚的日志,我必须这样做:
Journalctl -u nginx.service --1 小时前
这招果然管用,我立刻就找到了我想要的唱片。

但是,最烦人的部分是您必须知道服务的名称。
有一次,我们公司的网络出现了问题。
我当时不知道哪个服务有问题,所以我不得不使用这个:
systemctl 菜单模块 --type=service
一旦我运行此命令,所有服务都退出。
我搜索了这个列表并找到了与网络相关的服务。
原来是sshd服务有问题。

其他时候,我必须根据日志级别进行过滤。
例如,如果我想查看错误日志,我应该这样做:
Journalctl -u nginx.service -p 错误
这次只显示错误日志。

至于永久记录,那是我后来才知道的。
因为一旦我重新启动系统,所有记录都丢失了,所以我必须重新查找它们。
后来我学会了如何设置:
sudo mkdir -p /var/log/journal sudo systemd-tmpfiles --create --prefix /var/log/journal sudo systemctl restart systemd-journald
这样设置后,历史记录就会保存在硬盘上,不会丢失。

如果您熟悉Journalctl,那么解决问题时可以事半功倍。
虽然一开始有点复杂,但慢慢就习惯了。
嘿兄弟,试试吧,相信你一定能用的!

如何查看Linux系统日志?journalctl和tail -f /var/log/messages实战技巧

如何读取Linux系统日志?只需使用journalctl和tail-f即可。
这两种设备都有各自的优点。

journalctl是新版本系统必备的日志记录工具。
无论您身在何处,都可以使用它来读取所有日志。
例如:
查看所有日志:journalctl
查看最新的启动日志:journctl -b
实时查看日志:journctl -f
只读 sshd 日志:journalctl -u sshd
查看特定时间的日志:例如2 点到3 点:journalctl -since "2 02 5 -04 -05 02 :00:00" - Until "2 02 5 -04 -05 03 :00:00"
journalctl的优点是可以直接连接systemd,不管传统路径如何。
日志信息结构化且易于过滤。
适合当前系统。

tail -f /var/log/messages 是一种较旧的方法,但仍然易于使用。
操作:
实时查看日志:tail -f /var/log/messages
使用 sshd 查看日志: tail -f /var/log/messages | grep sshd
需要root权限:sudo tail -f /var/log/messages
tail -f的优点是简单明了。
适合快速查看系统整体状态。
有些老系统还不支持JournalCtl,所以只能使用它。

如何选择?这取决于具体情况:
journalctl适合精确搜索特定服务或时间的日志。
例如,要检测 nginx 问题,请使用 journctl -u nginx。

Tail-F适合快速查看系统整体状态。
例如监控整个系统是否正常运行。

有时这些可以一起使用。
在journalctl -u正在读取nginx服务日志的同时,tail -f /var/log/nginx/access.log正在读取access日志,这样可以立即发现问题。
可以。

总之,如果你熟悉journalctl和tail -f这两个工具,对于日常的日志阅读来说基本足够了。

linux查看日志的三种命令

粗略地说,Linux 依赖于 tail、multi-tail 和其他日志读取方法,但正确使用它们的方法会产生很大的差异。

我们先来说说最重要的尾巴。
这就像一只敏锐的眼睛专注地注视着一根木头的尾部。
去年我们在做一个电商项目,半夜突然崩溃了。
我干脆用tail -f /var/log/syslog扫描一下,发现缓存失效了,节省了半天的排查时间。
但不要犯傻,继续阅读,例如 Tail -f /var/log/nginx/access.log |查找“4 04 ”。
只需填写眼睛即可,无需添加 grep。
3 000 个请求将在几分钟内阻塞终端。
还有一个更重要的细节。
轮换日志时,您可以使用 Tail --follow=name 自动导航到新文件。
起初我以为必须手动更改命令,但后来发现这是错误的。
这东西相当聪明。
等等,还有一件事:tail -f file1 -f file2 可以一次跟踪多个文件,但不要太贪心,超过四个会让你头晕。

关于多尾的还有一点。
它是一款多屏同时监控工具。
我们运维团队在进行任何活动的时候,都会同时查看Nginx、MySQL、Redis这三个日志,并直接多路分屏展示。
就像看一场演唱会,谁有问题一目了然。
但不要填得太满。
如果文件超过三个,就会变成PPT,系统资源就会耗尽。
按 b 切换文件,按 q 退出。
这些键盘快捷键比鼠标点击方便得多。

还有一个更重要的细节。
少是懒人最好的武器。
它不会刷新整个屏幕,只需添加一个 F 选项,如 Tail -f 。
上次检查内核错误时,我使用 less -F /var/log/dmesg 滚动了很长时间。
按 Ctrl+C 暂停并按 / 搜索单词。
这比 Ctrl+F 准确得多。
然而,这里有一个陷阱。
较小的F是单面的,不能像尾巴一样追溯。
使用时需要注意这一点。

建议选择根据场景:快速定位使用Tail,文件较多的复杂环境使用Multitail,需要缓慢移动的则少用。
但不要记住它们;结合使用它们是最有效的。
例如,值得尝试将 less 构建到 multitail 中,或者将 Tail 与 grep 过滤一起使用,然后使用 less。