#!/bin/bash mem=`free -m |sed -n '2p'|awk '{print $3/$2*100}'` if [ `echo "$mem>10"|bc` -eq 1 ];then echo `date "+%Y/%m/%d %H;%M;%S"`" 内存负载过高 $mem%" >> 1.txt fi ~ 改为监管磁盘
时间: 2024-03-18 18:38:33 浏览: 126
解决-BASH: /HOME/JAVA/JDK1.8.0_221/BIN/JAVA: 权限不够问题
可以将上述脚本改为监管磁盘使用情况,具体步骤如下:
1. 将获取内存使用情况的命令`free -m`替换为获取磁盘使用情况的命令`df -h`,并将结果保存到`disk`变量中。
2. 将计算内存使用率的命令`sed -n '2p'|awk '{print $3/$2*100}'`替换为计算磁盘使用率的命令,例如`df -h | grep '/dev/sda1' | awk '{print int($5)}'`,其中`/dev/sda1`是磁盘分区的名称,可以根据实际情况进行修改。该命令会获取磁盘分区的使用率,并将结果保存到`disk_usage`变量中。
3. 将判断内存使用率是否超过阈值的语句`if [ `echo "$mem>10"|bc` -eq 1 ];then`改为判断磁盘使用率是否超过阈值的语句,例如`if [ $disk_usage -gt 90 ]; then`,表示当磁盘使用率超过90%时,执行下一步操作。
4. 将输出内存负载过高的语句`echo `date "+%Y/%m/%d %H;%M;%S"`" 内存负载过高 $mem%" >> 1.txt`改为输出磁盘负载过高的语句,例如`echo `date "+%Y/%m/%d %H;%M;%S"`" 磁盘负载过高 $disk_usage%" >> 1.txt`,表示输出当前时间和磁盘使用率,并将结果保存到`1.txt`文件中。
综上所述,改进后的脚本如下:
```
#!/bin/bash
disk=$(df -h)
disk_usage=$(echo "$disk" | grep '/dev/sda1' | awk '{print int($5)}')
if [ $disk_usage -gt 90 ]; then
echo `date "+%Y/%m/%d %H;%M;%S"`" 磁盘负载过高 $disk_usage%" >> 1.txt
fi
```
该脚本会获取磁盘使用情况,并计算磁盘使用率。当磁盘使用率超过90%时,输出当前时间和磁盘使用率,并将结果保存到`1.txt`文件中。可以将该脚本加入到定时任务中,以便定期监管服务器磁盘使用情况。
阅读全文