编写脚本文件查看Linux分区使用率,超出范围并报警
前言Linux的字符命令界面中我们可以通过指令查看当前主机分区的使用率,并且可以当达到预设警值时通过字符终端、邮件等进行警告。主机环境:CentOS 6.8 、 VMware® Workstation 12 Pro正文① df 命令使用 df 命令来检查当前linux服务器的文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少...
前言
Linux的字符命令界面中我们可以通过指令查看当前主机分区的使用率,并且可以当达到预设警值时通过字符终端、邮件等进行警告。
主机环境:CentOS 6.8 、 VMware® Workstation 12 Pro
正文
① df 命令
使用 df 命令来检查当前linux服务器的文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
df -h
列出当前主机磁盘空间占用情况,其中-h选项是human的意思,意为采用人们方便阅读的形式查看,即以B,K,M,G为单位显示
② grep 命令
使用 grep 命令可以查找当前文本或文件中的目标文本。这里我们以分区sda5 分区为例
df -h | grep sda5
从刚才列出的磁盘相关信息中查找出 sda5 分区的相关信息,其中“ | ”符号为管道符,可以理解为将 df -h 指令列出的文本流,通过管道流向 grep sda5 处理。grep sda5 可以查找出有关 sda5 分区的那一行的相关信息
③ awk 命令
awk 也是一种处理文本文件的语言,是一个强大的文本分析工具。
之所以叫AWK是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的Family Name的首字符。
df -h | grep sda5 | awk '{ print \$5 }'
有第②条命令我们筛选出了有关 sda5 分区的相关信息,并将其信息通过管道符交给 awk 命令处理。{ } 命令代码块,包含一条或多条命令;print 是 awk 打印指定内容的主要命令。print $5 即为打印该文本中的第5列文本。
④ cut 命令
cut 命令可以实现文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
-d :自定义分隔符,默认为制表符。
-f :与-d一起使用,指定显示哪个区域。
df -h | grep sda5 | awk '{ print $5 }' | cut -d "%" -f 1
从第③条命令我们就已经筛选出了我们的 sda5 分区目前所占空间的比例,但是在shell编程中,文本默认都是字符串文本,而并非数值文本,故我们先把数字文本提取出来,方便之后比较。
在这条命令中我们将以 % 号为分隔符,并且输出第一列内容。根据结果可以看出输出结果为数字文本。
⑤ 判断数值并做出警告
我们可以将我们的以上的指令写入一个脚本中,如 warn.sh 脚本文件。
vim warm.sh
#!/bin/bash # 脚本文件标准开头
occupy=$(df -h | grep sda5 | awk '{ print $5 }' | cut -d "%" -f 1)
# 如果占用比大于90%,则报警输出警告文本
if [ "$occupy" -ge "90" ]
then
echo "sda5 is full"
fi
chmod 755 warm.sh
#设置脚本文件权限,使其可执行
./warm.sh
#执行脚本文件
结果会发现并没有输出结果,那是因为我们现在 sda5 所占分区仅占16%,远未达到所设定的90%。现在我们将脚本中的判断语句改为 if [ "$occupy" -ge "10" ]
,即设为达到10%即报警,再次执行脚本,结果如下:
更多推荐
所有评论(0)