查看系统错误日志的基本命令
在日常维护服务器时,排查问题最快的方式就是看日志。Linux 系统中的错误日志大多存放在 /var/log 目录下,比如系统启动失败、服务崩溃、网络异常等问题,都能在这里找到线索。
tail 查看实时日志
最常用的是 tail 命令,特别是配合 -f 参数可以实时追踪日志变化。比如查看最新的系统错误信息:
tail -f /var/log/messages
如果你用的是较新的系统,可能使用 journalctl,这时可以用:
journalctl -f
这样就能看到不断滚动的最新日志,像监控摄像头一样盯着系统的一举一动。
grep 搜索关键错误
日志文件往往很大,不可能一行行翻。这时候要用 grep 来过滤出包含“error”、“failed”、“critical”的行:
grep "error" /var/log/syslog
不区分大小写搜索更保险:
grep -i "error" /var/log/syslog
有时候还能发现类似“Permission denied”或“Connection refused”这样的提示,直接定位到权限或网络问题。
dmesg 查看内核报错
当服务器出现硬件异常、驱动加载失败或者突然重启,dmesg 就派上用场了。它显示的是内核环形缓冲区的信息:
dmesg | grep -i error
比如你插了个新硬盘,系统没识别,dmesg 里可能会打出“I/O error”或“device not ready”,一眼就能看出是数据线松了还是硬盘坏了。
journalctl 管理 systemd 日志
现在很多发行版都用 systemd,对应的日志工具是 journalctl。想看某个服务的错误,比如 nginx 启动失败:
journalctl -u nginx.service
加上 -n 100 只看最后 100 行,加快响应:
journalctl -u nginx.service -n 100
也可以按时间查,比如昨天的错误:
journalctl --since yesterday | grep -i error
less 分页浏览大日志
有些日志文件特别大,直接 cat 会卡住终端。用 less 打开更安全:
less /var/log/auth.log
进入后按 / 输入关键词搜索,比如 /Failed,快速跳转到登录失败记录,适合排查暴力破解尝试。
find 定位日志文件位置
不同系统存放日志的位置可能不一样,CentOS 和 Ubuntu 的路径略有差异。如果不确定日志在哪,可以用 find 搜:
find /var/log -name "*.log" -exec grep -l "error" {} \;
这条命令会列出所有包含 error 的日志文件名,帮你快速锁定目标。