CentOS 7 에서 Nginx 로그 의 정시 분할
* 이 예 에 서 는 매일 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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.