Overvåker en eller flere nettside ved bruk av script. Varsel sendes på e-post. Varslingen baserer seg på sendemail, om den ikke allerede er installert, kjør:

sudo apt install sendemail

1. Opprett ny fil under /var/opt/scripts/checkwebsite.sh

#!/bin/bash

################################################################################

# This script will check to see if a website is up/down by pinging the url
# If there is no response an email wil be send via an external smtp mail server
# If the site status is down an email will be send when the site is up again

# set your check interval here :-) #############################################
interval=300 # hour

# begin status ; DO NOT CHANGE #################################################
stat=0 # this is the status UP; status 1 is DOWN

# your url #####################################################################
url=$1 #"vg.no"

# email settings ###############################################################

send(){ # subject message
        toemail="<til-epostadresse>"
        fromemail="fra-epostadresse"
        smtpserver="smtp.altibox.no"
        port=25
        username="<brukernavn>"
        passw="<passord>"
        sendemail -f "$fromemail" -t "$toemail" -u "$1" -m "$2" -s \
        "$smtpserver:$port" -xu "$username" -xp "$passw" -o tls=no -q
}

# check url #######################

while :
do
        wget --server-response --no-check-certificate --spider $url 
        if [ "$?" -eq 0 ] # so if we have exit status of zero then server is UP
        then
                if [ "$stat" -eq 1 ]
                then
                echo "UP | `date`" >> "$url-status.log"
                send "$url is UP" "UP | `date`"
                stat=0
                fi
        else
                if [ "$stat" -eq 0 ]
                then
                echo "DOWN | `date`" >> `echo "$url-status.log"`
                send "$url is DOWN" "DOWN | `date`"
                stat=1
                fi
        fi

        sleep $interval

done

exit

2. Husk å gjøre filen kjørbar:

chmod +x /var/opt/scripts/checkwebsite.sh

3. Opprett en ny service-fil under /etc/systemd/system/monitor-<tjeneste>.service med følgende innhold:

[Unit]
Description=Monitorerer <nettstedsadresse f.eks vg.no>

[Service]
User=root
WorkingDirectory=/var/opt/scripts
ExecStart=/var/opt/scripts/checkwebsite.sh <nettstedsadresse f.eks vg.no>
Restart=always

[Install]
WantedBy=multi-user.target

4. Start den nye tjenesten ved å kjøre:

sudo systemctl start monitor-<tjeneste>

5. Få tjenesten til å starte automatisk ved omstart:

sudo systemctl enable monitor-<tjeneste>

Repeter punk 3-5 for alle tjenester som skal overvåkes.

Legg igjen en kommentar 0

Your email address will not be published. Required fields are marked *