CentOS 7 에서 Nginx 로그 의 정시 분할

1924 단어
1. 분할 스 크 립 트 작성 (splitNginxLog. sh)
* 이 예 에 서 는 매일 0 시 에 로 그 를 분리 하 는 것 을 설정 하기 때문에 folder 와 rq 는 모두 어제 날짜 로 압축 파일 을 설정 합 니 다.
#!/bin/bash
folder=`date -d yesterday +%Y%m`
rq=`date -d yesterday +%Y%m%d`
#       
logs_path="/var/log/nginx/sitename.com/"
#       
logs_backup_path="/var/log/nginx/sitename.com/$folder"
#       
logs_access="access"
logs_error="error"
#       
[ -d $logs_backup_path ]||mkdir -p $logs_backup_path
#           
mv ${logs_path}${logs_access}.log ${logs_backup_path}/${logs_access}_${rq}.log
mv ${logs_path}${logs_error}.log ${logs_backup_path}/${logs_error}_${rq}.log
#   nginx pid
pid_path="/var/run/nginx.pid"
kill -USR1 $(cat $pid_path)

  
2. 테스트 로그 분할 스 크 립 트
. sh 파일 의 저장 디 렉 터 리 에서 다음 문 구 를 실행 하여 스 크 립 트 분할 에 성 공 했 는 지 테스트 합 니 다.
# sh splitNginxLog.sh

$'\ r': 명령 의 해결 을 찾 지 못 하면 'sh 파일 인 코딩 문제' 일 수 있 습 니 다. Windows 편집기 에서 작 성 된 스 크 립 트 와 Liux 에서 의 차이 가 있 기 때 문 입 니 다.
처리 방법:
1. dos2unix 를 설치 하여 인 코딩 전환 에 사용
# yum install dos2unix

  
2. 인 코딩 변환
# dos2unix splitNginx.sh

  
3. 정시 자동 실행 설정
# crontab -l    //         
# crontab -e    //      

다음 문장 을 작성 합 니 다:
00 00 * * * bash /root/splitNginxLog.sh

  
참고 자료:
로그 분할 부분
https://blog.csdn.net/molaifeng/article/details/82667158
https://www.jianshu.com/p/1ccdd3e390ac
https://cloud.tencent.com/developer/article/1508110
https://www.cnblogs.com/free-long/p/8005082.html
부호화 변환 부분
https://www.cnblogs.com/duanjt/p/9677589.html
SH 파일 실행 부분
https://blog.csdn.net/hpf247/article/details/79190600
정시 실행 부분
https://www.cnblogs.com/cqlb/p/9772207.html
날짜 함수 사용
https://blog.csdn.net/y65184536/article/details/82187977

좋은 웹페이지 즐겨찾기