Linux监控系统磁盘使用比例,当使用率达到指定比例,删除指定目录下的所有文件的shell脚本
来源:互联网 发布:java 包装类 编辑:程序博客网 时间:2024/05/22 13:12
在服务器运维过程中,经常需要对服务器的各种资源进行监控,例如: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系统监控的博客,自己尝试实现了一下,可能存在很多疏忽的地方,但基本上功能可以简单实现。
- Linux监控系统磁盘使用比例,当使用率达到指定比例,删除指定目录下的所有文件的shell脚本
- shell-删除目录下指定日期前的所有文件
- shell脚本删除目录下的指定文件
- linux下递归删除目录下所有指定的文件
- C# 删除指定目录下的 所有指定文件、文件夹
- shell脚本删除指定目录下超过指定时间的文件
- Linux下面删除指定目录下非指定文件的所有文件
- linux 删除目录下所有指定文件
- Linux shell批量删除指定目录下的所有目录的编程思路
- 删除指定目录下的所有文件包括目录
- 使用Python脚本删除指定文件夹下的指定目录及其文件
- shell 删除指定目录下过时的文件或目录
- 删除指定目录下的所有文件的java类
- 删除指定目录下的所有文件的java类
- 删除指定目录下的所有文件的java类
- 删除指定目录下的所有文件的java类
- Linux下如何遍历指定目录下的所有文件并删除指定天数之前创建的文件
- 新手学Python 删除指定目录下的所有文件
- Java中的static关键字理解和总结
- linux下实现彩色进度条
- Nginx为什么比Apache Httpd高效:原理篇
- (算法分析Week13)Combination Sum IV[Medium]
- 经验技巧套路收获总结(附上ccf第二类中的三道)
- Linux监控系统磁盘使用比例,当使用率达到指定比例,删除指定目录下的所有文件的shell脚本
- Rhyme/算法 冒泡排序优化版
- 自顶向下,逐步求精
- 秒杀系统架构分析与实战
- caffe 创建网络模型
- List<String> 调用Collection.sort()整个流程的知识点
- 使用Phalcon+PHP-FPM构建PHP基于多进程的数据库连接池
- 半天学会 Swift
- 多线程