Linux监控系统磁盘使用比例,当使用率达到指定比例,删除指定目录下的所有文件的shell脚本

本文介绍了一个简单的Linux Shell脚本,用于监控指定目录下的磁盘使用情况,并在达到预设阈值时自动清理文件以释放空间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       在服务器运维过程中,经常需要对服务器的各种资源进行监控,例如:CPU的负载监控,磁盘的使用率监控,进程数目监控等等,以下是Linux监控系统磁盘使用比例,当使用率达到指定比例,删除指定目录下的所有文件shell脚本的编写。在本文中,使用自动生成文件模拟在磁盘中添加文件等资料占用磁盘空间,增大磁盘占用率。该功能的shell脚本的具体实现如下:

       首先在编写脚本的文件目录下新建一个名为tmp的临时文件(文件名可以自己定义),用于保存生成的文件,命令为:

mkdir tmp

       我们可以ls 命令进行查看。可以看到当前目录下的新增的tmp文件。

       打开一个用于编写shell脚本的文件,命令为:

vi WatchDisk.sh 

       这里的文件名可以自己定义,一般取比较容易理解的名称:在vi WatchDisk.sh 文件中编写该脚本的代码如下:

  1 #!/bin/bash
  2 i=0
  3 path=$1
  4 max=$2
  5 
  6 #path 和 max为从键盘输入的参数,分别表示生成文件的目录和自己设定开始删除文件的磁盘占用率
  7 #如果输入参数小于2个则输出提示并退出
  8 if [ $# -lt 2 ]
  9 then
 10     echo "argument error"
 11     exit
 12 fi
 13 
 14 while [ true ]
 15 do
 16     #生成文件,文件名为helloi,i是从0增加的整数,生成的文件存放在当前目录下的tmp 文件中I
 17     dd if=/dev/zero of=./tmp/hello${i}.txt bs=5M count=1
 18     ((i++))
 19     sleep 0.3
 20     #获取磁盘占用率的整数数值
 21     value=$(df -h | grep sda |awk -F ' ' '{print $5}' | cut -d '%' -f 1)
 22     #将磁盘占用率与指定的最大占用率相比较,如果大于max则删除指定目录下的所有文件
 23     if [ ${value} -gt $max ]
 24     then
 25         rm ${path}/*
 26     fi
 27 
 28     sleep 0.5
 29 done

       为WatchDisk.sh添加可执行权限,命令如下:

chmod +x WatchDisk.sh

       首先输入命令查看当前的磁盘占用率,命令为:df -h | grep sda

       为了方便查看程序执行结果:我们同时打开两个终端,一个执行shell脚本,一个监测磁盘空间。
这里写图片描述
       我们可以发现当执行文件是不输入参数,或只输入一个参数,输出提示并退出。
这里写图片描述
       当正确输入新建文件的文件名和开始删除的文件磁盘占用率是正常执行。
这里写图片描述

       通过执行结果我们可以看到当磁盘占用率到达我们输入的开始删除文件的磁盘占用率35%时,磁盘占用率变成最初的32%,这是因为执行了删除当前目录下tmp目录下的所有文件。这时我们打开tmp文件,命令vi tmp可以看到如下图:
这里写图片描述
       按照代码生成的文件应该是从hello0.txt 开始,图片中可以看到的文件是从hello118.txt开始,这是因为在删除全部文件是没有及时退出WatchDisk.sh的执行,在退出前生成的文件,而在之前生成118个(从0开始)helloi 文件正好磁盘占用率达到36%大于35%,所以将前面的文件全部删除,开始循环产生文件。
       刚开始接触Linux,昨天看到一篇关于Linux系统监控的博客,自己尝试实现了一下,可能存在很多疏忽的地方,但基本上功能可以简单实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值