/var/log/syslog
- 系统常规日志/var/log/auth.log
- 认证相关日志/var/log/kern.log
- 内核日志/var/log/dmesg
- 启动信息/var/log/nginx/
- Nginx日志/var/log/apache2/
- Apache日志查看完整日志
cat /var/log/syslog
实时查看日志更新
tail -f /var/log/syslog
查看最后N行
tail -n 50 /var/log/syslog
基本搜索
grep "error" /var/log/syslog
忽略大小写
grep -i "error" /var/log/syslog
显示匹配行前后内容
grep -A 3 -B 2 "error" /var/log/syslog # 显示匹配行前后各3行和2行
提取特定列
awk '{print $1, $5}' /var/log/syslog
基于条件筛选
awk '$6 == "[error]" {print $0}' /var/log/nginx/error.log
统计出现次数
awk '{count[$6]++} END {for (word in count) print word, count[word]}' /var/log/nginx/access.log
替换文本
sed 's/error/ERROR/g' /var/log/syslog
删除特定行
sed '/debug/d' /var/log/syslog
查找特定时间段的错误
grep "error" /var/log/syslog | grep "Jun 15"
统计HTTP状态码
awk '{print $9}' access.log | sort | uniq -c | sort -rn
提取特定IP的活动
grep "192.168.1.100" /var/log/nginx/access.log | awk '{print $1, $4, $7}'
使用logrotate
logrotate -f /etc/logrotate.conf
查看压缩日志
zcat /var/log/syslog.1.gz | grep "error"
使用sed筛选时间范围
sed -n '/Jun 15 10:00/,/Jun 15 11:00/p' /var/log/syslog
使用awk筛选时间戳
awk -F'[][]' '$2 >= "15/Jun/2023:10:00:00" && $2 <= "15/Jun/2023:11:00:00"' /var/log/nginx/access.log
这些命令组合可以满足大多数日志分析需求,根据具体情况调整参数即可。