背景

检测所有磁盘分区使用率和 inode使用率并记录到以当天日期为命名的日志文件里,当发现某个分区容量或者inode使用量大于85%时,发邮件通知你自己。

  1. #!/bin/bash
  2. dir=/tmp/disk
  3. d=`date +%F`
  4. mail=1182350036@qq.com
  5. [ -d $dir ] || mkdir $dir #查看是否为文件夹,并且文件是否存在
  6. df >> $dir/$d.log #将当前磁盘使用情况添加到log文件中
  7. df -i >> $dir/$d.log #将当前磁盘inode信息添加到log文件中
  8. df | sed '1d'| awk -F '+|%' '$5>=85 {print $7}' > $dir/df.tmp
  9. df -i|sed '1d' |awk -F ' +|%' '$5>=85 {print $7}' > $dir/df_i.tmp
  10. n1=`wc -l $dir/df.tmp|awk '{print $1}'`
  11. n2=`wc -l $dir/df_i.tmp|awk '{print $1}'`
  12. tag=0
  13. if [ $n1 -gt 0 ]
  14. then
  15. if [ $n2 -gt 0 ]
  16. then
  17. tag=11
  18. else
  19. tag=10
  20. fi
  21. else
  22. if [ $n2 -gt 0 ]
  23. then
  24. tag=01
  25. else
  26. tag=00
  27. fi
  28. fi
  29. case $tag in
  30. 11)
  31. pyton3 mail.py $mail "磁盘空间和inode使用高于85%" "`cat $dir/df.tmp $dir/df_i.tmp|xargs`"
  32. ;;
  33. 10)
  34. python3 mail.py $mail "磁盘空间使用率高于85%" "`cat $dir/df.tmp|xargs`"
  35. ;;
  36. 01)
  37. python3 mail.py $mail "磁盘inode使用率高于85%" "`cat $dir/df.tmp|xargs`"
  38. ;;
  39. *)
  40. ;;
  41. esac