常用的 Linux 查看日志命令有哪些?tail、less、grep 用法?
一、常用日志查看命令
命令 | 用途 | 示例 |
---|
cat | 查看完整日志(小文件) | cat /var/log/syslog |
tail | 查看日志尾部内容(默认10行) | tail -f /var/log/nginx/access.log |
head | 查看日志头部内容 | head -n 20 /var/log/auth.log |
less | 交互式查看大日志文件 | less /var/log/kern.log |
grep | 过滤特定关键词的日志 | grep "error" /var/log/syslog |
journalctl | 查看 systemd 日志(服务日志) | journalctl -u nginx --since "today" |
multitail | 多窗口同时监控多个日志 | multitail /var/log/nginx/*.log |
go专栏:https://duoke360.com/tutorial/path/golang
二、核心命令详解
1. tail
- 实时监控日志
tail -n 20 /var/log/nginx/error.log
tail -f /var/log/syslog
tail -f /var/log/nginx/access.log | grep "404"
tail -n +100 /var/log/auth.log
2. less
- 交互式浏览日志
less /var/log/long_file.log
less -p "error" /var/log/syslog
3. grep
- 精准过滤日志
grep "Failed" /var/log/auth.log
grep -i "error" /var/log/syslog
grep -v "192.168.1.1" access.log
grep -A 3 -B 2 "panic" kern.log
grep -E "404|500" access.log
grep -r "timeout" /var/log/
grep "^May 20" syslog
三、组合技示例
1. 实时监控并过滤错误日志
tail -f /var/log/nginx/error.log | grep -E "500|503" --color=auto
2. 统计日志中404错误的次数
grep -c "404" /var/log/nginx/access.log
3. 查看某时间段的日志
sed -n '/May 20 10:00:00/,/May 20 11:00:00/p' /var/log/syslog
4. 分析高频率出现的IP
grep -oP '(\d+\.){3}\d+' access.log | sort | uniq -c | sort -nr | head -10
四、日志文件路径
日志类型 | 常见路径 |
---|
系统日志 | /var/log/syslog 或 /var/log/messages |
认证日志 | /var/log/auth.log |
Nginx/Apache | /var/log/nginx/access.log |
MySQL | /var/log/mysql/error.log |
内核日志 | /var/log/kern.log |
五、注意事项
- 权限问题:普通用户可能需要
sudo
查看系统日志 - 日志轮转:大日志可能被压缩成
.gz
文件,用 zcat
或 zless
查看 - 高效分析:超大型日志建议先用
grep
过滤再处理