nginx 로그 가 데이터베이스 에 삽입 되 어 전단 분석 처 리 를 진행 합 니 다.
2280 단어 셸 스 크 립 트
#!/bin/bash
# nginx ,
user=admin
password=12345
nginx_dir=/nginx/logs/access.log
date_time=`date '+%d/%b/%Y:%k:%M' -d '-1 min'`
date_now=`date '+%Y-%m-%d'`
grep "$date_time" $nginx_dir | while read line
do
# ,
eval $(echo "$line" |awk -F'|' '{printf("remote_addr=%s;status=%s;body_bytes_sent=%s;bytes_sent=%s;http_referer=%s;request_time=%s;upstream_addr=%s;upstream_respone_time=%s;upstream_status=%s",$1,$4,$5,$6,$7,$9,$10,$11,$12);}')
locat_time=`echo $line|awk -F'[|:" "]' '{print $3":"$4":"$5}'`
#request_method=`echo "$line"|awk -F'|' '{print $3}' |awk -F' ' '{print $1}'`
request_method=`echo $line|awk -F[\|" "] '{print $4}'`
#request=`echo "$line"|awk -F'|' '{print $3}' |awk -F' ' '{print $2}'`
request=`echo $line|awk -F[\|" "] '{print $5}'`
#http_user_agent=`echo "$line"|awk -F'|' '{print $8}' |awk -F[\(\)]+ '{print $2}'`
http_user_agent=`echo $line|awk -F[\|\(\)] '{print $9}'`
/user/bin/mysql -u$user -p$password -e "INSERT INTO nginx_table (remote_addr,date_now,locat_time,request_method,request,status,body_bytes_sent,bytes_sent,http_referer,http_user_agent,request_time,upstream_addr,upstream_respone_time,upstream_status) VALUES ('$remote_addr','$date_now','$locat_time','$request_method','$request','$status','$body_bytes_sent','$bytes_sent','$http_referer','$http_user_agent','$request_time','$upstream_addr','$upstream_respone_time','$upstream_status');"
done
echo "fininsh"
nginx_table 표 는 데이터베이스 에 새로 만 들 고 위 에 데이터 베 이 스 를 삽입 하 는 필드 에 대응 합 니 다.그리고 이 스 크 립 트 를 1 분 에 한 번 씩 실행 하 는 crontab 를 추가 합 니 다.1 분 동안 nginx 로 그 를 데이터베이스 에 삽입 하여 전단 분석 처 리 를 할 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
셸 스 크 립 트 (다 중 스 레 드 대량 생 성 사용자)예 를 들 어 백업 데이터 베 이 스 는 100 개의 라 이브 러 리 가 있 고 정상 적 인 백업 효율 이 매우 낮 습 니 다.다 중 스 레 드 가 있 으 면 백업 하 는 데 10 시간 이 걸 릴 수도 있 었 는데 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.