nginx 로그 절단 및 제거
4778 단어 nginx
1.1 스 크 립 트 예제
#!/bin/bash
log_path="/home/gongyong/nginx/logs" cutDate=`date +%Y-%m-%d_%H` nginx_cmd="/home/gongyong/nginx/bin/nginx" shellScriptPath="/home/gongyong/crontab"
echo "${cutDate} start delete old log and cut current log" > ${shellScriptPath}/nginx_log_cut.log
toDeleteFiles=`find ${log_path} -mtime +1 -type f -print |grep -E "access|error"` for toDeleteFile in ${toDeleteFiles} do echo "${cutDate} ${toDeleteFile} will be deleted" >> ${shellScriptPath}/nginx_log_cut.log rm -f ${toDeleteFile} done
if [ ! -d ${log_path} ];then echo "${log_path} not exist" > ${shellScriptPath}/nginx_log_cut.log.error exit 1 fi cp ${log_path}/access.log ${log_path}/access.log.${cutDate} && > ${log_path}/access.log cp ${log_path}/error.log ${log_path}/error.log.${cutDate} && > ${log_path}/error.log
# reopen a new log file ${nginx_cmd} -s reopen -p /home/gongyi/nginx/
2. kill 명령 을 사용 하여 nginx 메 인 프로 세 스에 신 호 를 보 냅 니 다.
nginx 메 인 프로 세 스에 USR 1 신 호 를 보 내 고 로그 파일 을 다시 엽 니 다. 그렇지 않 으 면 뮤 직 비디오 후의 파일 에 데 이 터 를 계속 쓸 것 입 니 다.이 유 는 Liux 시스템 에서 커 널 은 파일 설명자 에 따라 파일 을 찾 습 니 다.이렇게 하지 않 으 면 로그 절단 에 실 패 했 습 니 다.
#!/bin/bash
log_path="/home/gongyong/nginx/logs" cutDate=`date +%Y-%m-%d_%H` nginx_cmd="/home/gongyong/nginx/bin/nginx" shellScriptPath="/home/gongyong/crontab"
echo "${cutDate} start delete old log and cut current log" > ${shellScriptPath}/nginx_log_cut.log
toDeleteFiles=`find ${log_path} -mtime +1 -type f -print |grep -E "access|error"` for toDeleteFile in ${toDeleteFiles} do echo "${cutDate} ${toDeleteFile} will be deleted" >> ${shellScriptPath}/nginx_log_cut.log rm -f ${toDeleteFile} done
if [ ! -d ${log_path} ];then echo "${log_path} not exist" > ${shellScriptPath}/nginx_log_cut.log.error exit 1 fi cp ${log_path}/access.log ${log_path}/access.log.${cutDate} && > ${log_path}/access.log cp ${log_path}/error.log ${log_path}/error.log.${cutDate} && > ${log_path}/error.log
kill -USR1 `ps axu | grep "nginx: master process" | grep -v grep | awk '{print $2}'`
3 、 logrotate 로 절단
3.1 설치
3.2 logrotate 설정
[root@weblogic logrotate.d]# pwd /etc/logrotate.d [root@weblogic logrotate.d]# cat nginx /var/log/nginx/*log { daily rotate 10 dateext missingok notifempty # compress delaycompress create 640 nginx adm sharedscripts postrotate [ -f /var/run/nginx.pid ] && /bin/kill -USR1 $(cat /var/run/nginx.pid 2>/dev/null) 2>/dev/null || : endscript }
3.3 설정 매개 변수
/ var / log / nginx / nginx 로그 의 저장 디 렉 터 리 는 실제 상황 에 따라 수정 할 수 있 습 니 다.
daily: 로그 파일 은 천륜 에 따라 이동 합 니 다.
weekly: 로그 파일 은 주 별로 돌아 갑 니 다.
monthly: 로그 파일 은 매달 돌아 갑 니 다.
missingok: 로그 가 돌아 가 는 동안 '파일 을 찾 을 수 없습니다' 와 같은 오 류 는 무 시 됩 니 다.
rotate 10: 한 번 에 10 개의 로그 파일 을 저장 합 니 다.11 번 째 로그 파일 에 대해 서 는 가장 오래된 로그 파일 이 삭 제 됩 니 다.
dateext: 로그 파일 접 두 사 를 날짜 형식 으로 정의 합 니 다. 즉, 절 단 된 파일 은 xxx. log - 20160402. gz 와 같은 형식 입 니 다.이 매개 변 수 는 주석 이 떨 어 지면 숫자 에 따라 증가 합 니 다. 즉, 앞에서 말 한 xxx. log - 1 과 같은 형식 입 니 다.
copress: 순환 작업 이 완 료 된 후에 이미 순환 한 압축 파일 은 gzip 로 압축 합 니 다.
delaycopress: 항상 copress 옵션 과 함께 사용 합 니 다. delaycopress 옵션 은 logrotate 에 게 최근 압축 파일 을 압축 하지 말 라 고 지시 합 니 다. 압축 은 다음 라운드 에서 주기 적 으로 진 행 됩 니 다.이것 은 당신 이나 어떤 소프트웨어 가 최신 압축 파일 을 읽 어야 할 때 유용 합 니 다.
notifempty: 빈 파일 이 라면 덤 프 를 하지 않 습 니 다.
create 640 nginx adm: 지정 한 권한 과 사용자 속성 으로 새로운 로그 파일 을 만 들 고 logrotate 도 원본 로그 파일 의 이름 을 바 꿉 니 다.
post rotate / endscript: 모든 다른 명령 이 완료 되면 post rotate 와 endscript 에서 지정 한 명령 이 실 행 됩 니 다.이 경우 rsyslogd 프로 세 스 는 즉시 설정 을 다시 읽 고 계속 실 행 됩 니 다.주의: 이 두 키 워드 는 반드시 단독으로 줄 을 지어 야 합 니 다.
3.4 logrotate 절단 로 그 를 보 는 시간
[root@weblogic logrotate.d]# cat /etc/anacrontab # /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # the maximal random delay added to the base delay of the jobs RANDOM_DELAY=45 # the jobs will be started during the following hours only START_HOURS_RANGE=3-22
#period in days delay in minutes job-identifier command 5 cron.daily nice run-parts /etc/cron.daily 25 cron.weekly nice run-parts /etc/cron.weekly @monthly 45 cron.monthly nice run-parts /etc/cron.monthly
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
간단! Certbot을 사용하여 웹 사이트를 SSL(HTTPS)화하는 방법초보자가 인프라 주위를 정돈하는 것은 매우 어렵습니다. 이번은 사이트를 간단하게 SSL화(HTTP에서 HTTPS통신)로 변경하는 방법을 소개합니다! 이번에는 소프트웨어 시스템 Nginx CentOS7 의 환경에서 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.