写一个nginx访问日志分析的shell脚本
时间: 2023-03-22 09:00:24 浏览: 152
用shell脚本分析Nginx日志
以下是一个简单的Shell脚本,用于分析nginx访问日志:
```shell
#!/bin/bash
# 设置日志文件路径
LOG_FILE="/var/log/nginx/access.log"
# 统计访问次数最多的前10个IP地址
echo "Top 10 IP addresses by number of requests:"
awk '{print $1}' $LOG_FILE | sort | uniq -c | sort -rn | head -n 10
# 统计最常被请求的前10个URL
echo "Top 10 requested URLs:"
awk '{print $7}' $LOG_FILE | sort | uniq -c | sort -rn | head -n 10
# 统计最常出现的HTTP状态码
echo "HTTP status codes with count:"
awk '{print $9}' $LOG_FILE | sort | uniq -c | sort -rn
# 统计访问来源域名的数量
echo "Number of unique referer domains:"
awk '{print $11}' $LOG_FILE | awk -F/ '{print $3}' | sort | uniq | wc -l
```
这个脚本首先设置了nginx访问日志文件的路径,然后使用awk和其他命令来提取有用的信息并进行统计。它将输出访问次数最多的前10个IP地址、最常被请求的前10个URL、最常出现的HTTP状态码以及访问来源域名的数量。
你可以将脚本保存为文件,例如"nginx_log_analysis.sh",然后使用chmod命令将其设置为可执行文件:
```shell
chmod +x nginx_log_analysis.sh
```
然后在终端中运行它:
```shell
./nginx_log_analysis.sh
```
它将输出上述统计信息。
阅读全文