linux 日誌定時清理腳本

工做中常常會碰到服務日誌佔滿服務器磁盤,若是不去清理,服務就可能沒法正常工做。適當提升日誌的打印級別,如info級別提升到warn能夠臨時緩解下,但也不長久之際,nginx

還得寫個腳本定時清理下。bash

 

  1. #!/bin/bash  
  2. #clearLog.sh  
  3.   
  4. nginxDir=/usr/local/nginx/logs/*  
  5. devInfo=($(df -l | awk '{print $1}'))     #日誌所處的磁盤  
  6. perInfo=($(df -l | awk '{print int($5)}')) #磁盤使用率  
  7.   
  8. for i in `seq 0 ${#perInfo[@]}`;  
  9. do   
  10.    if [[ ${devInfo[i]} = '/dev/xvda1' ]] && [[ ${perInfo[i]} -ge 80 ]];  
  11.    then  
  12.         
  13.      for file in $nginxDir;  
  14.      do  
  15.          exist=`echo $file | awk '{if(match($0,/\.log/)) print "yes"}'`;  
  16.          if [[ -f $file ]] && [[ ${exist} = yes ]];  
  17.          then  
  18.            echo '' > $file;  
  19.            echo $(date) $file "clear log ok!" >> /var/log/clear.log ;  
  20.          fi;  
  21.      done  
  22.    fi;  
  23.      
  24.    
  25. done 

 

肯定日誌所處磁盤的使用狀況,通常使用率達到80%就能夠進行清理了。服務器

接着起個定時任務:日誌

crontab -ecrontab

輸入:awk

0/30 * * * *  /xxx/clearLog.shdate

每隔30分鐘檢測一次磁盤使用狀況定時任務

相關文章
相關標籤/搜索