[shell] 定时清理脚本

0. 需求和使用场景

后台服务在运行过程中,会产生很多文件,随着时间的推移,文件越来越多,而我们的磁盘空间是有限的。而这些历史文件,对我们不是必要的,就可以清除历史文件,为新文件落地释放出空间。

1. 主要命令

1.1 df -h #显示磁盘空间使用率
1.2 grep #行过滤
1.3 awk #列过滤,目标行是第五行,使用百分比
1.4 cut -d # 求子串

2. shell脚本

执行策略是,当磁盘占用率高于90%时,删除数据,直到占用率低于70%。

#! /bin/sh
DATA_DISK="/dev/sdb" #也可以是挂载的目录
DATA_DIR="/mnt/sdb"
# 当磁盘满时,清理旧文件
i=`df -h | grep $DATA_DISK| awk '{print $5}' | cut -d "%" -f1`
if test "$i" -ge 90 
then
    echo "disk nearly full"
    cd $DATA_DIR 
    for filedel in `ls | sort -n`
    do
        rm -f $filedel/* # 执行删除操作
        echo $filedel
        ii=`df -h | egrep $DATA_DISK| awk '{print $5}' | cut -d "%" -f1`
        if test "$ii" -lt 70 
        then
            break
        fi
    done
else
    echo "disk space normal"
fi
3. 加入定时任务

/usr/local/bin/clean.sh 是2中脚本的绝对路径

echo "*/60 * * * *  /usr/local/bin/clean.sh " >> /var/spool/cron/root
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值