nginx log 格式

log_format  access  '$http_x_forwarded_for $remote_addr $remote_user [$time_local]' 
 '"http://$host" "$request" $status $body_bytes_sent "$http_referer"' 
 '"$http_user_agent" "$HTTP_X_UP_CALLING_LINE_ID" "$request_time"';

1. 获得访问前 10 位的 ip 地址

cat access.log|gawk '{print $1}' |sort|uniq -c|sort -nr|head -10

2. 访问次数最多的文件或页面

cat access.log|gawk '{print $11}'|sort|uniq -c|sort -nr

3. 通过子域名访问次数,依据 referer 来计算(稍有不准)

cat access.log|awk '{print $11}'|sed -e ' s/http:\/\///' -e ' s/\/.*//'|sort|uniq -c|sort -rn|head -20

4. 列出传输大小最大的几个文件

cat access.log|awk '($7~/\.php/){print $10 " " $1 " " $4 " " $7}'|sort -nr|head -100

5. 列出输出大于 200000byte(约 200kb)的页面以及对应页面发生次数

cat access.log|awk '($10 > 200000 && $7~/\.php/){print $7}'|sort -n|uniq -c|sort -nr|head -20

6. 如果日志最后一列记录的是页面文件传输时间,则有列出到客户端最耗时的页面

cat access.log|awk '($7~/\.php/){print $NF " " $1 " " $4 " " $7}'|sort -nr|head -100

7. 列出最最耗时的页面(超过 60 秒的)的以及对应页面发生次数

cat access.log|awk '($NF > 60 && $7~/\.php/){print $7}'|sort -n|uniq -c|sort -nr|head -100

8. 列出传输时间超过 30 秒的文件

cat access.log|awk '($7~/\.php/){print $NF " " $1 " " $4 " " $7}'|sort -nr|head -100

9. 列出当前服务器每一进程运行的数量 (倒序排)

ps -ef|awk -F ' ' '{print $8 " " $9}' |sort|uniq -c|sort -nr|head -20
此文章已被阅读次数:正在加载...更新于

请我喝杯咖啡吧☕️

木亦 微信支付

微信支付

木亦 支付宝

支付宝