Nginx 로그 절단 - 시간 당

4878 단어 Nginx
Nginx 로그 절단 - 시간 당
  • 서문
  • 원리
  • 셸 스 크 립 트
  • 스 크 립 트 검증
  • 정시 설정
  • 서언
    최근 디 버 깅 인터페이스, ip 권한 부여, nginx 로 그 를 보 는 것 과 관련 되 었 습 니 다. 그러나 매일 데이터 양 이 너무 많아 서 현장에서 로 그 를 내 보 내 는 것 이 너무 힘 들 고 시간 이 너무 길 어서 로 그 를 자 르 는 시간 을 생각 했 습 니 다!
    의 원리
    사실 원 리 는 간단 합 니 다. 셸 스 크 립 트 스 크 립 트 스 크 립 트 를 시간 에 따라 이름 을 바 꾸 고 저장 하 는 것 입 니 다.
    셸 스 크 립 트
    #!/bin/bash
    # Every hour running time.
    # by bobliu.
     
    # The Nginx logs path
    log_year=$(date +"%Y")
    log_month=$(date +"%m")
    log_day=$(date +"%d")
    log_hour=$(date +"%H")
    log_min=$(date +"%M")
    logs_path="/usr/local/nginx/logs/"
    save_path="/usr/local/nginx/logs/log"
     
    if [ ! -d "$save_path" ]; then
    mkdir -p "$save_path"
    fi
     
    mv ${logs_path}access.log ${save_path}access_${log_year}${log_month}${log_day}_${log_hour}_${log_min}.log
     
    if [ $log_hour = 00 ]; then
    mv ${logs_path}error.log ${save_path}error_$log_year$log_month$log_day.log
    fi
     
    kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
    

    이 내용 은 sh 파일 에 저 장 됩 니 다. 파일 이름 은 logs. sh 입 니 다.
    주의: 만약 sh 파일 이 윈도 우즈 개발 에서 작성 되 었 다 면, linux 환경 에 업로드 되 었 을 때, "syntax error: unexpected end of file" 이 나타 나 면 컴 파일 할 수 없 을 수도 있 습 니 다. 따라서 다음 과 같은 몇 가지 작업 을 해 야 합 니 다
  • cd 에서 스 크 립 트 저장 경로 실행
  • vim logs.sh
    

    vim 명령 이 잘못 되면 다음 명령 을 입력 하 십시오. 이 항목 을 편집 하여 무시 할 수 있 습 니 다.
    yum -y install vim-enhanced
    
  • 다음 두 명령 을 입력 하고 인 코딩 형식 을 유 닉 스 인 코딩
  • 으로 변환 합 니 다.
    :set fileformat=unix
    :wq
    

    스 크 립 트 검증
    스 크 립 트 가 실행 가능 한 지 확인 하고 다음 명령 을 입력 하여 스 크 립 트 가 실행 가능 한 지 확인 하 십시오.
    sh logs.sh
    

    정시 설정
    마지막 으로 이 스 크 립 트 를 Liux 의 정시 작업 으로 만 듭 니 다.
  • 정시 퀘 스 트 생 성
    crontab -e
    
  • i 를 입력 하고 편집 에 들 어가 시간 당 5 분 실행
    5 * * * * sh /usr/local/nginx/logs/logs.sh
    
    : wq 로 설정 하여 저장 하고 검증
  • 좋은 웹페이지 즐겨찾기