这里或许是互联网从业者的最后一片净土,随客社区期待您的加入!
您需要 登录 才可以下载或查看,没有账号?立即注册
×
在 Linux 系统中,查询和分析日志是系统管理的重要任务之一。以下是常用的日志查询命令和技巧:
1. 核心日志文件位置
- /var/log/messages:通用系统日志(CentOS/RHEL)
- /var/log/syslog:通用系统日志(Debian/Ubuntu)
- /var/log/auth.log:认证相关日志(登录、sudo等)
- /var/log/secure:安全相关日志(CentOS/RHEL)
- /var/log/kern.log:内核日志
- /var/log/dmesg:内核启动日志(也可用 dmesg 命令)
- /var/log/nginx/、/var/log/apache2/:Web服务器日志
2. 基础查看命令
- tail - 查看日志尾部内容,常用于实时监控日志更新。
- tail -f /var/log/syslog # 实时跟踪日志更新(最常用)
- tail -n 100 /var/log/syslog # 显示最后100行
复制代码- head -n 50 /var/log/syslog # 显示前50行
复制代码- cat /var/log/syslog # 一次性显示全部内容(慎用于大文件)
复制代码- less /var/log/syslog # 支持上下翻页、搜索(按 `/` 搜索,`q` 退出)
- more /var/log/syslog # 基本分页查看
复制代码 3. 过滤与搜索
- grep "error" /var/log/syslog # 搜索包含 "error" 的行
- grep -i "timeout" /var/log/nginx/access.log # 忽略大小写搜索
- grep -A 3 -B 2 "panic" /var/log/messages # 显示匹配行及前后几行(-A后,-B前)
- grep -v "192.168.1.1" /var/log/nginx/access.log # 排除特定IP的日志
复制代码- awk '{print $1}' /var/log/nginx/access.log # 提取第一列(如IP地址)
- awk '$9 == 500 {print $7}' /var/log/nginx/access.log # 过滤HTTP状态码为500的请求路径
复制代码 4. 时间范围查询
- sed -n '/Apr 10 10:00/,/Apr 10 11:00/p' /var/log/syslog # 提取某时间段的日志
复制代码- journalctl - Systemd日志查询(适用于使用Systemd的系统)
- journalctl -u nginx.service # 查看Nginx服务的日志
- journalctl --since "2023-04-01" --until "2023-04-02"
- journalctl -f # 实时跟踪日志(类似 `tail -f`)
- journalctl -p err -b # 查看本次启动的所有错误日志
复制代码 5. 组合命令示例
- awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -n 10
复制代码- tail -f /var/log/syslog | grep -i "error"
复制代码- find /var/log -type f -mmin -60 -name "*.log"
复制代码 6. 日志轮转与管理
- logrotate:自动压缩和清理旧日志(配置文件在 /etc/logrotate.conf 和 /etc/logrotate.d/)。
- zcat/zgrep:查看压缩后的日志:
- zcat /var/log/syslog.1.gz # 查看压缩日志
- zgrep "error" /var/log/syslog.2.gz # 搜索压缩日志中的关键词
复制代码
通过组合这些命令,可以高效地定位和分析日志中的问题,希望这些能对你有所帮助。
|