Advertisement
METAJIJI

repo_accesslog_top.sh

Mar 23rd, 2016
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 0.67 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. LOG_FILE=/var/log/nginx/repo.access.log
  4. NUM_ROWS=50
  5.  
  6. cat <<-_EOF
  7.         Top $NUM_ROWS repo access log from `head -n 1 $LOG_FILE|awk '{gsub("\[","",$4);print $4}'` to `tail -n 1 $LOG_FILE|awk '{gsub("\[","",$4);print $4}'`
  8. _EOF
  9.  
  10. awk '{gsub("\?.*", "", $7); print $1, $7}' $LOG_FILE | sort | uniq -c | \
  11.         sed -e 's/^[ \t]*//' | sort -k1 -rn | head -n $NUM_ROWS | \
  12.         awk '{
  13.                cmd="host "$2
  14.                while ((cmd | getline val) > 0) {
  15.                        split(val, a, " ")
  16.                        h=a[5]
  17.                        if (a[5] ~ "NXDOMAIN") h=$2
  18.                }
  19.                print $1, h, $3
  20.        }'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement