Advertisement
Guest User

Untitled

a guest
Jul 11th, 2015
263
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.59 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # Pour rendre le fichier executable
  4. # chmod +x hddProb.sh
  5. #
  6. # cron toute les 30 minutes avec pour limite d'usage 60 par défaut si non définit c'est à 90%
  7. # crontab -e */30 * * * * /chemindemonscript/hddProb.sh -l=60
  8. #
  9.  
  10. #le hostname de la machine
  11. hostname=`hostname`
  12. #l'ip de la machine
  13. ip=`hostname --ip-address`
  14.  
  15. #
  16. # Paramétre par défaut si aucune option
  17. #
  18. #liste des emails qui vont recevoir l'alerte (email@email.fr email2@email.fr)
  19. emails=(email@email.fr)
  20. #la limite de remplissage du disque si elle n'est pas définit en paramétre
  21. percentageLimit=90
  22.  
  23. #on récupére le pourcentage utilisé sur le disque
  24. currentPercentage=`df / | awk '{ print $5 }' | tail -n 1`
  25. #on supprime le % du résultat optenu avec la commande précédente
  26. currentPercentage=${currentPercentage//%}
  27.  
  28. #sujet du mail
  29. subject="Attention manque de place sur ${hostname} : ${ip}"
  30. #message du mail
  31. message="Il ne reste que ${currentPercentage}% sur ${hostname} avec pour IP: ${ip}"
  32.  
  33. #définit la limit et les emails via les options -l=90 -e="email@example.fr email2@example.fr"
  34. for i in "$@"
  35. do
  36. case $i in
  37. -l=*|--limit=*)
  38. percentageLimit="${i#*=}"
  39. shift # past argument=value
  40. ;;
  41. -e=*|--emails=*)
  42. emails=("${i#*=}")
  43. shift # past argument=value
  44. ;;
  45. esac
  46. done
  47.  
  48. #si le pourcentage et >= à la limite on envoie un email
  49. if [[ "$currentPercentage" -ge "$percentageLimit" ]]; then
  50. #on boucle sur tout les emails du tableau pour envoyer l'email
  51. for email in ${emails[*]}
  52. do
  53. echo "Send email : ${email}"
  54. #on envoie l'email
  55. mail -s "${subject}" "${email}" <<< "${message}"
  56. done
  57. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement