linux 日誌定時清理腳本

工作中經常會碰到服務日誌佔滿服務器磁盤,如果不去清理,服務就可能無法正常工作。適當提高日誌的打印級別,如info級別提高到warn可以臨時緩解下,但也不長久之際,

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

#!/bin/bash
#clearLog.sh

nginxDir=/usr/local/nginx/logs/*
devInfo=($(df -l | awk '{print $1}'))     #日誌所處的磁盤
perInfo=($(df -l | awk '{print int($5)}')) #磁盤使用率

for i in `seq 0 ${#perInfo[@]}`;
do 
   if [[ ${devInfo[i]} = '/dev/xvda1' ]] && [[ ${perInfo[i]} -ge 80 ]];
   then
      
     for file in $nginxDir;
     do
         exist=`echo $file | awk '{if(match($0,/\.log/)) print "yes"}'`;
         if [[ -f $file ]] && [[ ${exist} = yes ]];
         then
           echo '' > $file;
           echo $(date) $file "clear log ok!" >> /var/log/clear.log ;
         fi;
     done
   fi;
   
 
done

確定日誌所處磁盤的使用情況,一般使用率達到80%就可以進行清理了。

接着起個定時任務:

crontab -e

輸入:

0/30 * * * *  /xxx/clearLog.sh

每隔30分鐘檢測一次磁盤使用情況



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章