Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

132 lignes
2.7 KiB

  1. #!/bin/bash
  2. # Allo-GG
  3. # Routine de verification de l'etat des services
  4. echo "********************"
  5. date
  6. echo "********************"
  7. echo
  8. # BLINK for 10 sec
  9. timeout 10 /usr/local/bin/gpio -g blink 18 &
  10. # HORLOGE
  11. if timedatectl status | grep -q 'Time zone: Europe/Paris (CEST, +0200)'
  12. then
  13. if timedatectl status | grep -q 'Network time on: yes'
  14. then
  15. if timedatectl status | grep -q 'NTP synchronized: yes'
  16. then
  17. if timedatectl status | grep -q 'RTC in local TZ: no'
  18. then
  19. echo "[✅ OK] Horloge"
  20. else
  21. echo "[❌ ERREUR] Horloge - RTC in local TZ"
  22. /usr/local/bin/gpio -g write 18 1
  23. exit
  24. fi
  25. else
  26. echo "[❌ ERREUR] Horloge - NTP not synchronized"
  27. /usr/local/bin/gpio -g write 18 1
  28. exit
  29. fi
  30. else
  31. echo "[❌ ERREUR] Horloge - Network time is OFF"
  32. /usr/local/bin/gpio -g write 18 1
  33. exit
  34. fi
  35. else
  36. echo "[❌ ERREUR] Horloge - Bad Timezone"
  37. /usr/local/bin/gpio -g write 18 1
  38. exit
  39. fi
  40. # LOG2RAM
  41. if mount | grep -q 'log2ram on /var/log type tmpfs'
  42. then
  43. echo "[✅ OK] Log2Ram"
  44. else
  45. echo "[❌ ERREUR] Log2Ram"
  46. /usr/local/bin/gpio -g write 18 1
  47. exit
  48. fi
  49. # APACHE
  50. if /usr/sbin/service apache2 status | grep -q 'running'
  51. then
  52. echo "[✅ OK] Apache"
  53. else
  54. echo "[❌ ERREUR] Apache"
  55. /usr/local/bin/gpio -g write 18 1
  56. exit
  57. fi
  58. # CRON
  59. if /usr/sbin/service cron status | grep -q 'running'
  60. then
  61. echo "[✅ OK] CRON"
  62. else
  63. echo "[❌ ERREUR] CRON"
  64. /usr/local/bin/gpio -g write 18 1
  65. exit
  66. fi
  67. # SSH
  68. if /usr/sbin/service ssh status | grep -q 'running'
  69. then
  70. echo "[✅ OK] SSH"
  71. else
  72. echo "[❌ ERREUR] SSH"
  73. /usr/local/bin/gpio -g write 18 1
  74. exit
  75. fi
  76. # WIRINGPI
  77. if /usr/local/bin/gpio -v | head -n 1 | grep -q 'gpio version: [0-9]'
  78. then
  79. echo "[✅ OK] WiringPi"
  80. else
  81. echo "[❌ ERREUR] WiringPi"
  82. /usr/local/bin/gpio -g write 18 1
  83. exit
  84. fi
  85. # INTERNET
  86. # tester 5 ping
  87. if ping -c5 1.1.1.1 | grep -q '0% packet loss'
  88. # Si la reponse est 0 paquets perdu, alors OK
  89. then
  90. echo "[✅ OK] Internet"
  91. # Mais sinon, il y a un probleme
  92. else
  93. # Tentative de relancer le wifi ...
  94. sleep 2
  95. echo
  96. echo "[❌ ERREUR] Probleme sur le Wifi ? Tentative de relancer la connexion en cours ..."
  97. ifdown --force wlan0
  98. sleep 2
  99. ifup wlan0
  100. sleep 2
  101. # ... puis refaire un test, en testant 10 ping cette fois
  102. if ping -c10 1.1.1.1 | grep -q '0% packet loss'
  103. # Si la reponse est 0 paquets perdu, alors finalement tout va bien
  104. then
  105. echo "[✅ OK] Internet"
  106. # Mais si le probleme est toujours present, alors on alerte :
  107. else
  108. echo "[❌ ERREUR] Internet"
  109. /usr/local/bin/gpio -g write 18 1
  110. exit
  111. fi
  112. fi
  113. # Tout va bien ^_^ Allumage de la LED d'etat.
  114. /usr/local/bin/gpio -g write 18 0
  115. echo
  116. echo "[✅ OK] Tout va bien 👌"
  117. echo "********************"
  118. echo
  119. exit