checkq.sh 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #!/bin/bash
  2. warning=100
  3. mailincoda=25
  4. precedente=0
  5. differenza=0
  6. up=0
  7. data=$(date +"%H:%M %d-%m-%Y")
  8. #legge la coda dei messaggi presenti.
  9. q=$(mailq | grep -e "^[A-Z|0-9]" | wc -l)
  10. ql=$(mailq | grep -e "^[A-F0-9]")
  11. soggetto="Coda Mail: ${q} - Rilevamento: ${data}"
  12. if [ -f /tmp/ALARM_QUEUE_MAIL ]; then
  13. # se e' presente l'allarme, provvede a leggerlo
  14. precedente=$(cat /tmp/ALARM_QUEUE_MAIL)
  15. echo "Dati letti in precedenza ${precedente}"
  16. #verifica la differenza tra l'attuale e il precedente
  17. differenza=$((precedente-differenza))
  18. echo "Differenza: ${differenza}"
  19. fi
  20. echo "${q}" > /tmp/ALARM_QUEUE_MAIL
  21. p1=0
  22. if [ ${precedente} -lt ${q} ]; then
  23. echo "Attenzione valori in rialzo"
  24. p1=1
  25. fi
  26. p2=0
  27. if [ ${precedente} -gt ${q} ]; then
  28. echo "Attenzione valori in discesa"
  29. p2=1
  30. fi
  31. p3=0
  32. if [ ${q} -gt ${warning} ]; then
  33. echo "differenza maggiore di warning!!!!"
  34. p3=1
  35. fi
  36. corpo=""
  37. corpo+="${soggetto}\n"
  38. corpo+="precedente: ${precedente}\n"
  39. corpo+="differenza: ${differenza}\n"
  40. if [ ${p1} -eq 1 ]; then corpo+="Valori in rialzo\n"; fi
  41. if [ ${p2} -eq 1 ]; then corpo+="Valori in discesa\n"; fi
  42. if [ ${p3} -eq 1 ]; then corpo+="Valori superiore al Warning ${warning}i\n"; fi
  43. corpo+="\n\n Lista Email:\n${ql}\n\n"
  44. if [ ${q} -gt ${warning} ]; then
  45. corpo+="Numero di mail superiore al previsto: ${q}\n"
  46. up=0
  47. else
  48. up=0
  49. fi
  50. if [ ${up} -eq "1" ]; then
  51. if [ ${q} -gt ${warning} ]; then
  52. echo "${ql}" | mail -s "ATTENZIONE: coda mail su $(hostname) ${q}. VERIFICARE!" root
  53. echo "${ql}" | mail -s "ATTENZIONE: coda mail su $(hostname) ${q}. VERIFICARE!" admin@altemica.net
  54. echo "${ql}" | mail -s "ATTENZIONE: coda mail su $(hostname) ${q}. VERIFICARE!" assistenza@altemica.com
  55. echo "${ql}" | mail -s "ATTENZIONE: coda mail su $(hostname) ${q}. VERIFICARE!" mauro@altemica.com
  56. echo "${q}" > /tmp/ALARM_QUEUE_MAIL
  57. else
  58. if [ -f /tmp/ALARM_QUEUE_MAIL ]; then
  59. echo "${ql}" | mail -s "ALLARME CHIUSO coda mail su $(hostname) ${q}." root
  60. echo "${ql}" | mail -s "ALLARME CHIUSO coda mail su $(hostname) ${q}." admin@altemica.net
  61. echo "${ql}" | mail -s "ALLARME CHIUSO coda mail su $(hostname) ${q}." assistenza@altemica.com
  62. echo "${ql}" | mail -s "ALLARME CHIUSO coda mail su $(hostname) ${q}." mauro@altemica.coma
  63. fi
  64. fi
  65. else
  66. echo "No alarm"
  67. #rm /tmp/ALARM_QUEUE_MAIL 2> /dev/null
  68. fi
  69. if [ ${q} -gt ${mailincoda} ]; then
  70. echo -e "${corpo} > ${mailincoda}" | mail -s "${soggetto} $(hostname)" root
  71. fi
  72. echo -e "${corpo}" | logger -p mail.info -t "checkqueue $(hostname)"