Linux – Prosta strona statusu usług

Zdarzyć się może, że będziemy potrzebować staroświeckiej strony z statusem usług. Nie koniecznie będziemy zainteresowani wielkim projektem, który zarządza stanem usług czy też tworzeniem konta w serwisie świadczącym takie usługi.

Dlaczego by nie zrobić takiej strony samemu?

  1. Stwórzmy podstawową stronę w html-u
  2. Utwórzmy skrypt check.sh, który będzie odpytywać usługi
  3. Dodajmy skrypt do harmonogramu (cron)
  4. Sukces

 

Gdy już stworzymy nasz szablon strony w html należy skopiować statyczną część strony do skryptu check.sh i opatrzyć ją poleceniem 'echo’. Dynamiczna część będzie sprawdzać czy nasze usługi są aktywne, ale by to zrobić musimy utworzyć listę z nazwami usług oraz adresami url.

#!/bin/bash 

echo '' > /var/www/status.html
echo '<html>' >> /var/www/status.html
echo '<head>' >> /var/www/status.html
echo '<title>status.example</title>' >> /var/www/status.html
echo '<body>' >> /var/www/status.html

arr[0]=blog
arr[1]=http://blog.example
arr[2]=www
arr[3]=http://www.example
p='UP'
r='DOWN'

for index in ${!arr[*]}
do
        if [ $(( $index % 2)) -eq 0 ]
        then
                echo '<p>' >> /var/www/status.html
                if curl -s --head ${arr[$index+1]} | head -n 1 | grep "HTTP/1.[01] [23].." > /dev/null
                then
                        echo $p >> /var/www/status.html
                else
                        echo $r >> /var/www/status.html
                fi
                echo ' ' >> /var/www/status.html
                echo ${arr[$index]} >> /var/www/status.html
                echo '</p>' >> /var/www/status.html
        fi
done

echo '</div></body></html>' >> /var/www/status.html

Zakładamy, że plik /var/www/status.html jest dostępny na naszym serwerze www oraz skrypt znajduje się w lokalizacji /opt/check.sh

chmod +x /opt/check.sh

 

Dodajmy skrypt do cron-a:

crontab -e

0 * * * * /opt/check.sh

W ten oto sposób nasz skrypt wykonywać będzie się co godzinę aktualizując plik status.html. Podejście to daje nam przewagę nad rozwiązaniami pisanymi w php, gdyż każdorazowe uruchomienie strony nie wykonuje komendy na naszym serwerze. Interwał między odświeżeniami kontrolujemy za pomocą wpisu w cron.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*