nginx 접근 로 그 를 날짜 별로 나 누 어 포장 하고 방문 로그 에 따라 메 일 열 림 률 을 통계 합 니 다.

3718 단어 solution
1. 로그 분할 패키지
다음은 로그 분할 패키지 스 크 립 트 입 니 다. 스 크 립 트 에 대한 자세 한 설명 (/ root / access log pack. sh)
#!/bin/sh
#         
d=`date -d "-1 day" +%Y%m%d`
# nginx pid  
nginxPid="/run/nginx.pid"
# nginx        
cd /var/log/nginx
#            
mv access.log access.log-$d
#   
gzip access.log-$d
#    nginx
kill -HUP `cat $nginxPid`
#   10       
find . -name access.log-*.gz -type f -mtime +10 -exec rm -rf {} \;

그리고 crontab 의 정시 실행 을 정의 하고 매일 0 시 정각에 실행 합 니 다.
0 0 * * * /root/access_log_pack.sh > /dev/null 2>&1

이렇게 매일 0 시 에 첫날 로 그 를 포장 하고 새로운 하루 에 새로운 방문 로 그 를 생 성 합 니 다.
2. 메 일 오픈 률 통계 분석
메 일 열 림 률 통계 의 원 리 는 이렇게 설정 되 어 있 습 니 다. 메 일 템 플 릿 에 길이 와 너비 가 모두 픽 셀 인 그림 을 추가 하면 육안 으로 알 수 없습니다. 사용자 가 메 일 을 열 때 이 그림 을 방문 하고 로그 에 이 요청 을 기록 합 니 다. 우 리 는 그림 뒤에 두 개의 인 자 를 추가 합 니 다. email 과 time 은 각각 메 일 을 받 는 메 일 주소 와 보 낼 때의 시간 스탬프 입 니 다.이렇게 하면 사용자 가 같은 메 일 을 반복 해서 열 어서 발생 하 는 오 차 를 피 할 수 있다.이 인 스 턴 스 에 서 는 두 가지 유형의 메 일 을 통계 해 야 합 니 다. 그림 은 각각 verification 이 라 고 명명 되 어 있 습 니 다.type_1. png 와 verificationtype_2.png。기록 한 로그 형식 은 다음 과 같 습 니 다.
127.0.0.1 - - [25/Jun/2019:16:38:02 +0800] "GET /[email protected]&time=1398006871 HTTP/1.1" 200 15221 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"
127.0.0.1 - - [25/Jun/2019:16:30:06 +0800] "GET /admin/system_period_actions HTTP/1.1" 200 5 "-" "curl/7.43.0"
127.0.0.1 - - [25/Jun/2019:16:38:02 +0800] "GET /[email protected]&time=1397006871 HTTP/1.1" 200 15221 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"
127.0.0.1 - - [25/Jun/2019:16:32:16 +0800] "POST /admin/stats/add_activation_email_open_stats HTTP/1.1" 200 5 "-" "curl/7.43.0"
127.0.0.1 - - [25/Jun/2019:16:38:02 +0800] "GET /[email protected]&time=1397006871 HTTP/1.1" 200 15221 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"

통계 형식 1 과 같은 메 일 열 림 률 의 핵심 스 크 립 트 는?
cat access.log-* | grep '/verification_type_*' | awk '{print $7}' | sort | uniq | grep -c 'verification_type_1.png'

위 스 크 립 트 의 실행 과정 을 자세히 설명 하 겠 습 니 다.
  • cat access. log - * 모든 이름 을 access. log - 로 시작 하 는 파일 의 내용 을 가 져 옵 니 다. 포장 이 있 으 면 먼저 압축 을 풀 수 있 습 니 다
  • cat access.log-* | grep ‘/verification_type_*’ 근거 / verificationtype_문자열 필터 파일 내용 의 줄 마다
  • cat access.log-* | grep ‘/verification_type_*’ | awk '{print $7}' 필터 링 된 파일 내용 의 줄 마다 일곱 번 째 열 을 가 져 옵 니 다. awk 의 열 은 기본적으로 첫 줄 의 일곱 번 째 열 을 빈 칸 으로 구분 합 니 다. '/ verification type 1. png? email [email protected]&time=1398006871”
  • cat access.log-* | grep ‘/verification_type_*’ | awk '{print $7}' | sort 는 앞의 내용 을 정렬 합 니 다
  • cat access.log-* | grep ‘/verification_type_*’ | awk '{print $7}' | sort | 유 니 크 는 정렬 된 내용 을 무 겁 게 합 니 다. 유 니 크 는 인접 한 줄 만 무 겁 게 할 수 있 기 때문에 정렬
  • 해 야 합 니 다.
  • cat access.log-* | grep ‘/verification_type_*’ | awk ‘{print $7}’ | sort | uniq | grep -c ‘verification_type_1. png '는' verification type 1. png '문자열 을 포함 하 는 줄 로 무 거 운 내용 을 집계 합 니 다
  • 유사 한 통계 유형 2 가지 메 일 열 림 률 의 핵심 스 크 립 트 는?
    cat access.log-* | grep '/verification_type_*' | awk '{print $7}' | sort | uniq | grep -c 'verification_type_2.png'
    

    좋은 웹페이지 즐겨찾기