shell习题第17题:检测磁盘

【题目要求】

写一个shell脚本,检测所有磁盘分区使用率和inode使用率并记录到以当天日期命名的日志文件里,当发现某个分区容量或者inode使用量大于85%时候,发邮件提醒

【核心要点】

df

df -i

date +%F

【脚本】

#!/bin/bash

dir=/tmp/disk
d=`date +%F`

[ -d $dir ] || mkdir $dir

df >> $dir/$d.log
df -i >> $dir/$d.log

df | sed '1d' | awk -F' +|%' '$5>=85 {print $7}' > $dir/df.tmp
df -i | sed '1d' | awk -F' +|%' '$5>=85 {print $7}' > $dir/df_i.tmp

n1=`wc -l $dir/df.tmp | awk '{print $1}'`
n2=`wc -l $dir/df_i.tmp | awk '{print $1}'`

tag=0
if [ $n1 -gt 0 ]; then
    if [ $n2 -gt 0 ]; then
        tag=11
    else
        tag=10
    fi
else
    if [ $n2 -lt 0 ]; then
        tag=01
    else
        tag=00
    fi
fi

case $tag in 
    11)
        python mail.py "磁盘空间和inode使用率高于85%" "`cat $dir/df.tmp $dir/df_i.tmp | xargs`"
    ;;
    10)
        python mail.py "磁盘空间使用率高于85%" "cat $dir/df.tmp | xargs"
    ;;
    01)
        python mail.py "磁盘inode使用率高于85%" "cat $dir/df_i.tmp | xargs"
    ;;
    00)
        echo "没问题"
    ;;
esac

猜你喜欢

转载自www.cnblogs.com/dingzp/p/10991065.html
今日推荐