Nginx: host. access. log 로그 절단

며칠 내 려 오 면서 nginx 의 host. access. log 가 점점 팽창 합 니 다.
이상 적 인 방법 은 host. access 와 같은 로그 파일 을 매일 구분 하 는 것 입 니 다.20120815. log 등 로 그 는 최근 10 일 동안 유지 되 고 10 일이 넘 는 로그 파일 은 삭 제 됩 니 다.
위의 수요 에 따라 nginx 로그 절단 을 진행 합 니 다.
1. 스 크 립 트 nginxcutlogs. sh
[devwqs@rehserver bin]$ more nginxcutlogs.sh
#!/bin/bash

# 1. move host.access.log to host.access_20120821.log
logs_path="/home/devwqs/nginx/logs/"
mv ${logs_path}host.access.log ${logs_path}host.access_$(date -d "yesterday" +"%Y%m%d").log
kill -USR1 `cat /home/devwqs/nginx/logs/nginx.pid`

# 2. delete all host.access_2012xxxx.log which overtime 10 days
find ${logs_path} -name 'host.*.log' -type f -mtime +10 -exec rm {} \;

  
2. crontab 를 사용 하여 상기 스 크 립 트 를 정시 작업 으로 발표 하고 매일 새벽 0.01 분 에 nginxcutlogs 를 실행 합 니 다.
#1.   devwqs crontab    
[devwqs@rehserver bin]$ crontab –e 
1 0 * * * sh /home/devwqs/bin/nginxcutlogs.sh

#2.     crontab
[devwqs@rehserver bin]$ cd /etc/init.d
[devwqs@rehserver init.d]$ sudo ./crond restart
Stopping crond: [  OK  ]
Starting crond: [  OK  ]

 
메모: crontab 를 다시 시작 해 야 합 니 다:
sudo ./crond restart
ubuntu 사용: service cron restart
crontab 학습 자료:
http://blog.csdn.net/sipsir/article/details/3973713
http://os.51cto.com/art/200512/13558.htm

좋은 웹페이지 즐겨찾기