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.