1. 스크립트 소개

- Apache Access로그파일에서 IP, 시간, HTTP코드별 접속건수 확인하는 스크립트 소개 - cat -> grep(필요시) -> awk 를 조합하여 작성

테스트 수행한 환경

- 인터넷가능한 환경, rockylinux 8.6

- access.log 레이아웃 예시 221.62.138.27 - - [16/Mar/2017:13:18:22 +0900] “POST /app/service.jsp?COMMAND=12&SVC_TYPE=2&SONG_ID=8045575 HTTP/1.1” 200 601 59213 “-“ “-“

스크립트1. IP별로 접속건수 구하기

cat으로 access.log 파일을 열고, awk로 IP데이터인 첫번째 필드를 추출 후 count 후 결과를 IP:count형태로 출력

필요시 cat과 awk사이에 grep을 넣어서 조건절 삽입가능

##파일 전체기준
cat access.log | awk '{print $1}' | awk '{ arr[$1]+=1} END{ for (i in arr) {print i "\t" ":" arr[i]}}

##2017년 13시 기준으로  
cat access.log | grep "2017:13" |awk '{print $1}' | awk '{ arr[$1]+=1} END{ for (i in arr) {print i "\t" ":" arr[i]}}

## 결과예시
221.62.138.72  : 543
223.35.12.46    : 24

스크립트2. 시간대별로 접속건수 구하기

- cat으로 access.log 파일을 열고, awk로 시간 데이터인 4번째 필드를 추출

- 4번째 필드( [16/Mar/2017:13:18:22 +0900] ) 에서 : 구분자를 기준으로 2번째가 시간 필드이고, 이를 기준으로 count하여 시간:건수 레이아웃으로 출력

cat access.log | awk '{print $4}' | awk -F":" '{ arr[$2]+=1} END{ for (i in arr) {print i "\t" ":" arr[i]}}' | sort

## 결과예시
00 : 8431
01 : 3921
02 : 2314
03 : 1341

스크립트3. HTTP 결과 코드별 접속 건 수 구하기

- cat으로 access.log 파일을 열고, awk로 http 결과코드로 count하여 결과코드:건수 레이아웃으로 출력

cat access.log | awk '{print $9}' | awk '{ arr[$1]+=1} END{ for (i in arr) {print i "\t" ":" arr[i]}}' | sort


## 결과 예시
200 : 2434314
401 : 921
404 : 8314
500 : 15

[!failure]- Failure SyntaxError: Unexpected token ‘<’, “«««< HE”… is not valid JSON

  • JSON.parse

  • plugin:obsidian-textgenerator-plugin:176841 PackageManager.load plugin:obsidian-textgenerator-plugin:176841:33

  • plugin:obsidian-textgenerator-plugin:179856 async TextGeneratorPlugin.onload plugin:obsidian-textgenerator-plugin:179856:7

태그: , ,

카테고리:

업데이트:

댓글남기기