入门shell练习题1--磁盘清理判断

题目要求:

脚本实现输出机器信息
   - 将本机的网卡的IP地址和MAC地址截取出来,输出到/root/nic
   - 将本机的磁盘使用情况截取出来 输出到 /root/disk
   - 判断系统空间使用的情况,如果 / 使用率大于30% 则删除 /tmp 的内容

[root@centos-jifu-vm shell]# vim systemces.sh
#!/bin/bash
#This shell script is for monitoring diskUsage&IP&MAC
MAC=`ip addr |  awk NR==8 | awk '{print $2}'` 
IP=`ifconfig | grep -E "\<([0-9]{1,3}\.){3}([0-9]{1,3})\>" | grep -v 127.0.0.1 | awk '{print $2}'`  #无法应对多网卡地址遴选
DiskUsage=`df -h | grep -v Filesystem | awk '{print $1,$5}'`  #列出分区,以及分区使用率
RootZoneUsage=`df -h | grep sda | awk '{print $5}'` #列出根分区的使用率
echo "$IP $MAC" > /root/nic #将IP地址与MAC地址写入文件
echo "$DiskUsage" > /root/disk #将分区使用率写入文件
echo "$RootZoneUsage" > ./file #将根分区的使用率写入一个已创建的文件中,使用相对路径
RootUsage=`sed 's/%//g' ./file` # 使用sed将使用率的百分号过滤掉
if [ $RootUsage -gt 30 ]   #最头疼的一句,明明就拿使用率比较,结果-lt -gt不能使用百分号比较只能划百分号为整
then
   cat /dev/null > /tmp/
else
   echo "The Disk Usage is less than 30%, you do not need care "
fi

感悟:

     这个shell练习题耗费掉我大量的时间,对于if判断中的-lt等比较不知道,对于文本字符的要求(必须为整数)

过滤%的时候,使用sed必须目标为文本,而不能是字符,我想直接把9%写到那里过滤,发现频频报错

还有一个 对于IP和MAC地址的截取 感觉是强行凑合出来的 并不适用于所有机器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值