Website Monitoring Script
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
import os
|
||||
import smtplib
|
||||
import requests
|
||||
# import logging
|
||||
from linode_api4 import LinodeClient, Instance
|
||||
|
||||
EMAIL_ADDRESS = os.environ.get('EMAIL_USER')
|
||||
EMAIL_PASSWORD = os.environ.get('EMAIL_PASS')
|
||||
LINODE_TOKEN = os.environ.get('LINODE_TOKEN')
|
||||
|
||||
# logging.basicConfig(filename='PATH_TO_DESIRED_LOG_FILE',
|
||||
# level=logging.INFO,
|
||||
# format='%(asctime)s:%(levelname)s:%(message)s')
|
||||
|
||||
|
||||
def notify_user():
|
||||
with smtplib.SMTP('smtp.gmail.com', 587) as smtp:
|
||||
smtp.ehlo()
|
||||
smtp.starttls()
|
||||
smtp.ehlo()
|
||||
|
||||
smtp.login(EMAIL_ADDRESS, EMAIL_PASSWORD)
|
||||
|
||||
subject = 'YOUR SITE IS DOWN!'
|
||||
body = 'Make sure the server restarted and it is back up'
|
||||
msg = f'Subject: {subject}\n\n{body}'
|
||||
|
||||
# logging.info('Sending Email...')
|
||||
smtp.sendmail(EMAIL_ADDRESS, 'INSERT_RECEIVER_ADDRESS', msg)
|
||||
|
||||
|
||||
def reboot_server():
|
||||
client = LinodeClient(LINODE_TOKEN)
|
||||
my_server = client.load(Instance, 376715)
|
||||
my_server.reboot()
|
||||
# logging.info('Attempting to reboot server...')
|
||||
|
||||
|
||||
try:
|
||||
r = requests.get('https://example.com', timeout=5)
|
||||
|
||||
if r.status_code != 200:
|
||||
# logging.info('Website is DOWN!')
|
||||
notify_user()
|
||||
reboot_server()
|
||||
else:
|
||||
# logging.info('Website is UP')
|
||||
except Exception as e:
|
||||
# logging.info('Website is DOWN!')
|
||||
notify_user()
|
||||
reboot_server()
|
||||
Reference in New Issue
Block a user