Gå til innhold

Program for utsending av SMS ved stopp


Bleenda

Anbefalte innlegg

Hei

Leter etter et program som sender sms / e-post om en tjeneste på serveren går ned.

Feks smtp servicen i windows stopper / ikke er statet. Eller om et program slutter og virke.

Eller om MySQL serveren streiker / serveren restarter seg.

 

Både linux og windows varianter er av interesse da jeg ikke har bestemt meg helt hva OS jeg skal bruke ennå.

Lenke til kommentar
Videoannonse
Annonse

Eg bruker eit mailskript skreve i Python for å sjekke statusen på mitt ZFS raid.

Det ser sånn ut:

 

# Import smtplib for the actual sending function
import os
import sys
import smtplib
import mimetypes
from email.Encoders import encode_base64
from email.MIMEAudio import MIMEAudio
from email.MIMEBase import MIMEBase
from email.MIMEImage import MIMEImage
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText

file = open("/home/olavg/log/mailstatus", "r")
filetext = file.read()
file.close()
if filetext != "1":

   FROM = '[email protected]'
   TO = '[email protected]'
   SUBJECT = 'zpool zfs health'
   MSGBODY = 'Check zpool health'
   MAILSERVER = 'smtp.example.net'
   port = 25

   zpoolStatus = os.popen("/sbin/zpool status")
   MSGBODY = MSGBODY + "\r\n" + zpoolStatus.read() 
   # trim the strings of any leading or trailing spaces
   FROM = FROM.strip()
   TO = TO.strip()
   SUBJECT = SUBJECT.strip()
   MSGBODY = MSGBODY.strip()
   MAILSERVER = MAILSERVER.strip()

   #Connect to server
   print 'Connecting to mail server ', MAILSERVER
   try:
       s = smtplib.SMTP(MAILSERVER,port)
   except:
       print 'ERROR: Unable to connect to mail server', MAILSERVER
       sys.exit(1)

   # get list of email addresses to send to
   ToList = TO.split(';')
   print 'Sending email to ', ToList

   # set up email parameters
   msg = MIMEMultipart()
   msg['From'] = FROM
   msg['To'] = TO
   msg['Subject'] = SUBJECT
   msg.attach(MIMEText(MSGBODY))

   # send email
   s.sendmail(FROM, ToList, msg.as_string())
   s.quit()
   s.close()

   file = open("/home/olavg/log/mailstatus","w")
   file.write("1")
print 'done'

 

Den proseessen som sjekker er eit sh skript som er lagt til i crontab

#!/bin/sh

send=0

# Check zpool status
status=$( /sbin/zpool status -x )

if [ "${status}" != "all pools are healthy" ]; then
           zpoolmsg="Problems with ZFS: ${status}"
                   send=1
                   fi

# Send status e-mail if needed
if [ "${send}" -eq 1 ]; then
           echo "${zpoolmsg}"
           /usr/local/bin/python ~/scripts/zfsmail.py
           echo "Zpool is not healthy"
else
   echo "Zpool is healthy"
   echo "0" > /home/olavg/log/mailstatus
fi
exit 0

 

Ein kan også sende frå eigen maskin om ein har ein ISP som har åpna for det.

Endret av siDDIs
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...