Loading

磁盘空间不足自动删除老文件

诉求

本地sftp服务持续写入数据,希望磁盘空间占用90%自动删除最老的数据。

实现

使用shell脚本

DIR=/var/sftp/volc
ACT=90
ls -dtr $DIR/*.xz | while read f ; do
if [ `df --output=pcent $DIR | sed '1d;s/%//'` -le $ACT ] ; then
    break
fi
    echo `date` delete $f
    rm -f $f
done

注意:建议先找其他路径测试效果,单纯rm换成echo无法在循环中减少磁盘占用,无法检验。

计划任务

每天0点自动执行一次脚本

crontab -e
# m h  dom mon dow   command
0 0 * * * /home/volc/autoclear.sh &> /home/volc/log.txt

参考

bash - Deleting oldest files to free space as needed on Linux - Super User

posted @ 2023-01-10 16:08  azureology  阅读(185)  评论(0编辑  收藏  举报