1. 실습 내용
Quest 1. access log 다운로드 하기
wget 명령어 이용
https://gist.githubusercontent.com/yrkimyy/82a0d437caceabda591d5ac172feb5fa/raw/fd00a5211cd9a1d2aa99114d997d16ef2ad0b2af/access.log
Q. 이 파일은 공백을 기준으로 각 필드를 구분할 수 있습니다. 각 필드는 어떤 의미를 담고 있을까요? 한번 연구해보세요. (관련 검색 키워드: access log fields)
Quest 2. 리눅스 명령을 이용해 접속 기록 통계 내기 (1)
리눅스 명령어를 이용해, access.log 파일에서 특정 IP 주소에 접속한 기록이 얼마나 많은지를 알고자 합니다. 130.237.218.86 에 접속한 기록을 필터링하세요. 총 몇번의 접속 기록이 존재하나요?
- 파일 이름은 홈 디렉토리에 access_count.sh 로 생성하세요.
- 쉘 스크립트는 실행 가능해야 합니다.
- access_count.sh 구현 시, 각종 출력 관련 명령어(grep , cat등)를 활용하고, 파이프를 이용해 연결하여 구현하면 됩니다.
- 다음과 같이 실행하여, 357 이라는 숫자가 출력되어야 합니다.
access_count.sh
Quest 3. 리눅스 명령을 이용해 접속 기록 통계 내기 (2)
access.log 에서 마지막 100줄의 로그 중, 상태 코드가 200인 로그를 추출하여 새로운 파일에 저장하고자 합니다. 어떻게 하면, 필터링한 로그만 별도로 저장할 수 있을까요? 새롭게 만든 파일에는 총 몇 줄의 로그가 있나요?
- 파일 이름은 홈 디렉토리에 access_count.sh 로 생성하세요.
- 쉘 스크립트는 실행 가능해야 합니다.
- access_count.sh 구현 시, 각종 출력 관련 명령어(grep , cat등)를 활용하고, 파이프를 이용해 연결하여 구현하면 됩니다.
- 다음과 같이 실행하여, 357 이라는 숫자가 출력되어야 합니다.
responese_200_count.sh
response_200.log
2. 추가 학습
WC 명령어와 옵션
- 특정 파일 내에서 존재하는 바이트수, 단어수, 행수를 카운트하여 화면에 출력해주는 명령어
- wc [옵션] [파일이름]
- -C: 바이트 수 출력
- -I: 행 개수 출력
- -L: 가장 긴 행의 문자 개수 출력
- -W: 단어 개수 출력
#!/bin/bash 라인은 꼭 넣어야 할까?
- 파일의 실행 경로를 나타내는 라인
- 셸 스크립트가 Bash 셸에서 실행되는 것을 보장하고, 스크립트 내에서 Bash 셸의 기능을 사용할 수 있도록 함
- 없어도 실행할 수 있지만, 스크립트가 어떤 셸에서 실행되는지 보장할 수 없음
출처
https://server-talk.tistory.com/406
https://www.sumologic.com/blog/apache-access-log/
chatGPT
'Code States > TIL' 카테고리의 다른 글
[0315] 웹서비스 개발 기초 - 웹서비스 접근하기 (0) | 2023.03.15 |
---|---|
[0315] 웹서비스 개발 기초 - 클라이언트-서버 아키텍처 (0) | 2023.03.15 |
[0314] 리눅스 운영체제 - 시스템 모니터링 (0) | 2023.03.14 |
[0313] 리눅스 운영체제 - 자동화 (0) | 2023.03.14 |
[0313] 리눅스 운영체제 - 서비스 관리 (1) | 2023.03.14 |