nginx 정시 작업 분할 로그

1304 단어
더 읽 기
nginx 는 / usr / local 폴 더 에 설치 되 어 있 습 니 다.
1. nginx 루트 디 렉 터 리 에 파일 data 를 만 들 고 스 크 립 트 파일 runlog. sh 를 저장 합 니 다.
mkdir /data
vim ./data/runlog.sh

2. 스 크 립 트 파일 runlog. sh 파일 에 다음 코드 를 추가 합 니 다.
코드 의 의 미 는 logs 폴 더 에서 매일 새벽 1 시 에 어제 로그 파일 을 생 성 합 니 다 (이름: access YYYY - MM - DD. log). 그리고 해당 연도 에 해당 하 는 월 폴 더 에 저장 합 니 다 (연도 YYY 로 폴 더 를 만 들 고 YYY 에서 월 별 MM 으로 폴 더 를 만 든 다음 로그 파일 을 MM 에 저장 합 니 다).
#!/bin/bash
log_base=/usr/local/nginx/logs
log_path=${log_base}/$(date -d yesterday +%Y)/$(date -d yesterday +%m)
mkdir -p $log_path
mv $log_base/access.log $log_path/access_$(date -d yesterday +%Y%m%d).log
touch $log_base/access.log
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
#echo $(date -d yesterday +%Y%m%d).log

3. runlog. sh 실행, 검사
echo 앞의 \ # 번 호 를 제거 하고 runlog. sh 스 크 립 트 를 종료 한 후 직접 입력 합 니 다:
sh runlog.sh //    ,       

4. runlog. sh 를 정시 에 실행
입력 명령:
crontab -e

열 린 인터페이스 에 다음 정 보 를 입력 하 십시오:
1 0 * * * sh /usr/local/nginx/data/runlog.sh //    0 1   

주: yesterday 도 today 등 을 사용 할 수 있 습 니 다. 정시 임무 수행 시간 을 바 꾸 면 됩 니 다.

좋은 웹페이지 즐겨찾기