Linux

로그 이쁘게 보기! tail 과 awk

Dongkkase 2010. 4. 7. 15:30
반응형
리눅스에서 실시간으로 로그를 확인해야 할때가 있는데 그럴 경우 전 아래의 명령어를 실행합니다.

명령어 : tail -f access.log
실행결과 : 118.34.220.226 - -     [07/Apr/2010:14:54:42 +0900] "POST /bbs/delete_all.php HTTP/1.0" 200 121 "http://xxxx.co.kr/xxxx/xxx/xxxx/xxxx/xxx/xxx.jsp" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; EmbeddedWB 14.52 from: http://www.xxxxxcom/ EmbeddedWB 14.52; .NET CLR 1.1.4322; InfoPath.2)"

실시간으로 매우 많은 양이 로그에 기록되면서 보여주는데 정말 정신 없습니다-_-;

그래서 awk 명령어도 같이 써줍니다.
awk에 대해선 자세히 모르지만 간단히 설명 드리자면 위의 길고 알아보기 힘든 로그를 필요한 부분만 잘라서 보여주는 기능입니다.

명령어 : tail -f access.log | awk -f" " '{ print $1" : "$6" : "$7}'
실행결과 : 118.34.220.226 : "POST : /bbs/delete_all.php HTTP/1.0"

네 이렇게 깔끔하게 나옵니다. (설명 드릴 포인트에 큰 글씨체와 볼드를 먹였습니다.)
설명을 드리자면 tail -f access.log | awk -f" " '{ print $1" : "$6" : "$7}'
tail -f access.log | awk -f" " '{ print $1" : "$6" : "$7}'  처럼 따옴표 안의 공백으로 구분합니다. 즉 위 가공전의 로그에 공백을 구분한다는거죠
tail -f access.log | awk -f" " '{ print $1" : "$6" : "$7}' 로 공백 전의 문자를 찾습니다. 정규식 표현법과 비슷합니다.
$1일 경우 위 가공전 로그의 첮번째인 ip $2,$3일 경우 '-'하이픈, $4일경우 날짜인 '[07/Apr/2010:....'
이런식입니다.

마지막으로 tail -f access.log | awk -f" " '{ print $1" : "$6" : "$7}' 이부분은
118.34.220.226 : "POST : /bbs/delete_all.php HTTP/1.0" 이부분과 같습니다.

설명이 난잡하여 남을 이해시키기에는 무리가 있는 포스팅이네요-_-;

찾아보니 더욱 자세하고 잘 설명되어있는 글을 찾았습니다.
아래 링크로 확인하여 주세요.
http://cafe.naver.com/itpeople.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=46


반응형

'Linux' 카테고리의 다른 글

ssh 접속시 "~~~ port 22: Connection refused"  (1) 2012.07.09
아이피 기반 접속제한  (0) 2009.11.18