日志分析是Linux系统管理和故障排查的核心技能。以下是一些实用的日志分析技巧和技术:
tail -f /var/log/syslog - 实时查看日志更新grep "error" /var/log/syslog - 搜索包含"error"的日志行less /var/log/syslog - 分页查看日志文件journalctl -xe - 查看systemd日志(带详细错误信息)# 查看最近100行并实时刷新
tail -n 100 -f /var/log/syslog
# 统计错误出现次数
grep -i "error" /var/log/syslog | wc -l
# 查看特定时间段的日志
sed -n '/May 10 10:00:00/,/May 10 11:00:00/p' /var/log/syslog
logrotate - 自动轮转日志文件zcat/zless - 查看压缩的日志文件zcat /var/log/syslog.2.gz | grep "error"# 统计每个IP的访问次数(适用于web日志)
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr
# 提取日志中的时间戳和消息
cut -d' ' -f1-3,5- /var/log/syslog
# 提取两个时间点之间的日志
sed -n '/2023-05-01 10:00/,/2023-05-01 11:00/p' /var/log/syslog
/var/log/auth.log - 认证和安全相关日志/var/log/kern.log - 内核日志/var/log/dmesg - 启动时内核消息/var/log/apt/ - APT包管理器日志/var/log/mysql/ - MySQL数据库日志#!/bin/bash
# 分析最近24小时的高频错误
LOG_FILE="/var/log/syslog"
START_TIME=$(date -d "24 hours ago" "+%b %d %H:%M:%S")
END_TIME=$(date "+%b %d %H:%M:%S")
# 提取时间范围内的错误日志
sed -n "/$START_TIME/,/$END_TIME/p" "$LOG_FILE" | \
grep -i "error" | \
awk '{print $5}' | \
sort | \
uniq -c | \
sort -nr | \
head -20
swatch或logcheck监控日志变化rsyslog将关键日志转发到中央服务器fail2ban分析日志并自动阻止恶意IP掌握这些技巧将大大提高你在Linux环境下的故障排查和系统监控效率。