工做中常常會碰到服務日誌佔滿服務器磁盤,若是不去清理,服務就可能沒法正常工做。適當提升日誌的打印級別,如info級別提升到warn能夠臨時緩解下,但也不長久之際,nginx
還得寫個腳本定時清理下。bash
- #!/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 -ecrontab
輸入:awk
0/30 * * * * /xxx/clearLog.shdate
每隔30分鐘檢測一次磁盤使用狀況定時任務