Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.87 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. LOGFILE="access.log"
  4. LIMIT=10
  5.  
  6. while getopts l:f: option
  7. do
  8. case "${option}"
  9. in
  10. l) LIMIT=${OPTARG};;
  11. f) LOGFILE=${OPTARG};;
  12. esac
  13. done
  14.  
  15. LOGFILE_GZ="$LOGFILE.*"
  16. RESPONSE_CODE="200"
  17.  
  18. filters() {
  19. grep $RESPONSE_CODE
  20. #\
  21. # | grep -v "\/rss\/" \
  22. # | grep -v robots.txt \
  23. # | grep -v "\.css" \
  24. # | grep -v "\.jss*" \
  25. # | grep -v "\.png" \
  26. # | grep -v "\.ico"
  27. }
  28.  
  29. filters_404() {
  30. grep "404"
  31. }
  32.  
  33. request_ips() {
  34. awk '{print $1}'
  35. }
  36.  
  37. request_method() {
  38. awk '{print $6}' | cut -d'"' -f2
  39. }
  40.  
  41. wordcount() {
  42. sort | uniq -c
  43. }
  44.  
  45. sort_desc() {
  46. sort -rn
  47. }
  48.  
  49. return_kv() {
  50. awk '{print $1, $2}'
  51. }
  52.  
  53. request_pages() {
  54. awk '{print $7}'
  55. }
  56.  
  57. referer_pages() {
  58. awk '{print $11}'
  59. }
  60.  
  61. return_top_ten() {
  62. head -$LIMIT
  63. }
  64.  
  65. ## actions
  66. get_request_ips() {
  67. echo ""
  68. echo "Top $LIMIT Request IP's:"
  69. echo "===================="
  70.  
  71. cat $LOGFILE \
  72. | filters \
  73. | request_ips \
  74. | wordcount \
  75. | sort_desc \
  76. | return_kv \
  77. | return_top_ten
  78. echo ""
  79. }
  80.  
  81. get_request_methods() {
  82. echo "Top Request Methods:"
  83. echo "===================="
  84. cat $LOGFILE \
  85. | filters \
  86. | request_method \
  87. | wordcount \
  88. | return_kv
  89. echo ""
  90. }
  91.  
  92. get_request_pages_404() {
  93. echo "Top $LIMIT: 404 Page Responses:"
  94. echo "==========================="
  95. zgrep '-' $LOGFILE $LOGFILE_GZ\
  96. | filters_404 \
  97. | request_pages \
  98. | wordcount \
  99. | sort_desc \
  100. | return_kv \
  101. | return_top_ten
  102. echo ""
  103. }
  104.  
  105. get_request_pages() {
  106. echo "Top $LIMIT Request Pages:"
  107. echo "====================="
  108. cat $LOGFILE \
  109. | filters \
  110. | request_pages \
  111. | wordcount \
  112. | sort_desc \
  113. | return_kv \
  114. | return_top_ten
  115. echo ""
  116. }
  117.  
  118. get_referer_pages() {
  119. echo "Top $LIMIT Referer Pages:"
  120. echo "====================="
  121. cat $LOGFILE \
  122. | filters \
  123. | referer_pages \
  124. | wordcount \
  125. | sort_desc \
  126. | return_kv \
  127. | return_top_ten
  128. echo ""
  129. }
  130.  
  131. get_request_pages_all() {
  132. echo "Top $LIMIT Request Pages from All Logs:"
  133. echo "==================================="
  134. zgrep '-' --no-filename $LOGFILE $LOGFILE_GZ \
  135. | filters \
  136. | request_pages \
  137. | wordcount \
  138. | sort_desc \
  139. | return_kv \
  140. | return_top_ten
  141. echo ""
  142. }
  143.  
  144. get_referer_pages_all() {
  145. echo "Top $LIMIT Referer Pages from All Logs:"
  146. echo "==================================="
  147. zgrep '-' --no-filename $LOGFILE $LOGFILE_GZ \
  148. | filters \
  149. | referer_pages \
  150. | wordcount \
  151. | sort_desc \
  152. | return_kv \
  153. | return_top_ten
  154. echo ""
  155. }
  156.  
  157. # executing
  158. get_request_ips
  159. get_request_methods
  160. get_request_pages
  161. get_referer_pages
  162. get_request_pages_all
  163. get_referer_pages_all
  164. get_request_pages_404
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement