nginx日誌管理腳本

此腳本實現nginx日誌文件按天自動切割,並且刪除一個月前的日誌
先上腳本:
 

Java代碼 複製代碼
  1. #!/bin/bash   
  2. cd /var/log/nginx/   
  3. mv  sendsadmin.access.log sendsadmin.access.$(date +%Y%m%d).log   
  4. mv  api.sends.cc.access.log api.sends.cc.access.$(date +%Y%m%d).log   
  5. mv  blog.sends.cc.access.log blog.sends.cc.access.$(date +%Y%m%d).log   
  6. mv  error.log error.$(date +%Y%m%d).log   
  7. sudo kill -USR1 `cat  /usr/local/web/nginx636/logs/nginx.pid`   
  8.   
  9. find /var/log/nginx/ -name "sendsadmin.access.*" -type f -ctime +30 -exec rm {} \; > /dev/null 2>&1  
  10. find /var/log/nginx/ -name "api.sends.cc.access.*" -type f -ctime +30 -exec rm {} \; > /dev/null 2>&1  
  11. find /var/log/nginx/ -name "blog.sends.cc.access.*" -type f -ctime +30 -exec rm {} \; > /dev/null 2>&1  
  12. find /var/log/nginx/ -name "error.*" -type f -ctime +30 -exec rm {} \; > /dev/null 2>&1  



註解:
 

Java代碼 複製代碼
  1. mv  sendsadmin.access.log sendsadmin.access.$(date +%Y%m%d).log   
  2. #把日誌文件sendsadmin.access.log改名爲sendsadmin.access.(當天日期).log  



 

Java代碼 複製代碼
  1. sudo kill -USR1 `cat  /usr/local/web/nginx636/logs/nginx.pid`   
  2. #nginx重建日誌文件  



 

Java代碼 複製代碼
  1. find /var/log/nginx/ -name "sendsadmin.access.*" -type f -ctime +30 -exec rm {} \; > /dev/null 2>&1  
  2. #find -- 查找   
  3. #/var/log/nginx/ -- 查找日誌目錄   
  4. #-name "sendsadmin.access.*" -type f -- 找以"sendsadmin.access."開頭的文件   
  5. #-ctime +30 -- 查找距離當日30天前文件   
  6. #-exec rm {} \; -- 找到後執行rm命令   
  7. #> /dev/null 2>&1 -- 輸出重定向  



保存腳本到本地並把腳本加入crontab每天23:59運行
 

Java代碼 複製代碼
  1. sudo vi /etc/crontab   
  2. 加入以下:   
  3. 59 23   * * *   root    /bin/bash /usr/local/web/nginx636/conf/cutlogs.sh  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章