본문 바로가기

리눅스

로그 파일 분석 스크립트 / awk, uniq, sort

awk (Aho + Weinberger + Kernighan)

awk 의 기본 기은 텍스트 형태로 되어있는 입력 데이터를 행과 단어 별로 처리해 출력하는 것

동작 예시 명령어
파일의 전체 내용 출력 awk '{print}' [FILE]
필드 값 출력 awk '{ print $1}' [FILE]       ( $1은 첫번째 필드)
필드 값에 임의 문자열을 같이 출력 awk '{print "STR"$1, "STR"$2}'[FILE]

 

#!/bin/bash
  echo -e "\nPOD LOG Analyze\n"
#-e 옵션은 "없이 내용 표시
  echo -e ":: COUNT OF ACCESS IP ::"
  cat 0.log | grep GET | awk '{print $4}' | sort | uniq -c | sort -n

  echo -e "\n:: COUNT OF ACCESSER BY HOUR ::"
  cat 0.log | grep GET | awk '{print $4}' | awk -F ":" '{print $2}' | uniq -c

  echo -e "\n:: COUNT OF HTTP STATUS CODE ::"
  cat 0.log | grep GET | awk '{print $12}' | sort | uniq -c

  echo -e "\n"

 

GET 으로 시작 된 줄 만 찾기 

 

cat 0.log

HTTP 상태 로그 (200, 300) 아래 한 줄 에 대한 로그 추출

 

 

uniq

uniq 명령어는 중복된 내용의 행이 연속으로 있으면 하나만 남기고 삭제한다.
전체적으로 분산된 중복은 찾아내지 못한다. 따라서 정렬하여 순차적으로 만든뒤에 적용한다. (sort와 같이 쓰기 좋음)

https://inpa.tistory.com/entry/LINUX-%F0%9F%93%9A-awk-%EB%AA%85%EB%A0%B9%EC%96%B4-%EB%AC%B8%EB%B2%95-%EB%A7%88%EC%8A%A4%ED%84%B0-%F0%9F%92%AF-%EC%B4%9D%EC%A0%95%EB%A6%AC

 

🐧 AWK 명령어 문법 마스터 💯 총정리

AWK (Aho Weinberger Kernighan) 개념 AWK는 텍스트가 저장되어 있는 파일을 원하는 대로 필터링하거나 추가해주거나 기타 가공을 통해서 나온 결과를 행과 열로 출력해주는 프로그램 이다. 좀더 쉽게 말

inpa.tistory.com

 

awk 명령어 참조 : 

 

 

🐧 AWK 명령어 문법 마스터 💯 총정리

AWK (Aho Weinberger Kernighan) 개념 AWK는 텍스트가 저장되어 있는 파일을 원하는 대로 필터링하거나 추가해주거나 기타 가공을 통해서 나온 결과를 행과 열로 출력해주는 프로그램 이다. 좀더 쉽게 말

inpa.tistory.com

 

'리눅스' 카테고리의 다른 글

/etc/passwd/  (0) 2024.09.09
사용자 관리 스크립트 / IFS  (0) 2024.09.09
데이터 백업 스크립트 / if, fi  (3) 2024.09.06
배포 스크립트 / jq, tr, for , scp  (3) 2024.09.06
서버 상태 체크 스크립트 / SAR, uname  (2) 2024.09.06