Linux日志分析

  1. 常用命令
  2. ssh 远程登陆失败、成功的日志
  3. awk命令分析

常用命令

# 查询登录失败的用户记录
lastb

# 查询成功登录到系统的记录
last

# 查询指定目录下30天以前的文件和目录
find /var/log/ -mtime +30

ssh 远程登陆失败、成功的日志

less /var/log/secure       # 日志量往往很大,使用 less 或 more 查看,不能用cat
tail -f /var/log/secure   # 查看实时的日志变化用 tail -f
grep -i Failed /var/log/secure  # 查询登录失败
grep  -i Accepted /var/log/secure  # 查询登录成功

# 查询IP爆破次数
grep -i Failed /var/log/secure |awk '{print $(NF-3)}' | sort | uniq -c | sort -rn

# 查看有多少IP 在爆破主机的root 用户
grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more

# 登录成功的IP
grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more

# 登录成功的 日期,用户名 IP
grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}'

awk命令分析

awk '{print $1}' zypjw.cn.log | sort -n |uniq -c | sort -rn | head -n 500

# 统计nginx访问ip的数量有几个(独立ip访问数量):
cat /www/wwwlogs/zypjw.cn.log | awk '{print $1}' | sort -nr | uniq | wc -l

# 统计不同ip访问nginx的次数,并由多到少排序:
cat /www/wwwlogs/zypjw.cn.log | awk '{print $1}' | sort -n | uniq -c| sort -rn | head -n 100

# 查看访问次数大于X(这里假设是100)的ip,并列出访问次数
cat /www/wwwlogs/zypjw.cn.log | awk '{print $1}' | sort -n | uniq -c| sort -rn | awk '{if($1>100)print $0}'

# 查询出访问最频繁的URL
cat /www/wwwlogs/zypjw.cn.log | awk '{print $7}' | awk -F '?' '{print $1}' | sort -n | uniq -c | sort -nr | head -n 1

# 对url进行统计:
cat /www/wwwlogs/zypjw.cn.log | awk '{print $7}' | awk -F '?' '{print $1}' | sort -n | uniq -c | sort -nr

# 统计访问成功次数(状态码为2开头的都为成功2xx):
cat /www/wwwlogs/zypjw.cn.log | awk '{if($9 ~ /2[0-9]{2}/)print $9}' | wc -l

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 [email protected]

×

喜欢就点赞,疼爱就打赏