#!/bin/bash
set -euo pipefail
#Logs_path = '/home/user/logs'
#取得每个分区的使用百分比(不要百分号)
percent=`df -k | grep -v Filesystem| awk '{print int($5)}'`
#循环判断分区使用率是否超过80%
for each_one in $percent
do
#判断使用率是否超过80%
if [ $each_one -ge 80 ];then
#超过80%则压缩日志文件为gz
find /home/user/logs -mindepth 2 -name "*.log"|xargs gzip -f
fi
done
#删除日志目录下5天前的文件
log_list=$(find /home/user/logs -mindepth 2 -name "*")
TIME_NOW=`date +%s`
KEEP_DAYS="5"
THRESH=$((86400*$KEEP_DAYS)) #5天的总秒数
for log in $log_list
do
for log_file in `ls $log*`
do
log_time=`ls --full-time $log_file| awk '{print $6" "$7}'`
log_time_s=`date -d "$log_time" +%s` #把上面文件时间换算成秒
time_diff=$(($TIME_NOW-$log_time_s))
[[ $time_diff -gt $THRESH ]] && rm -f $log_file
done
done
磁盘空间判断与清理
最新推荐文章于 2024-05-20 13:09:01 发布