def systemcheck():
  cpu_usage = psutil.cpu_percent(interval=60)
  disk_usage = psutil.disk_usage("/")
  mem_usage = psutil.virtual_memory()
  host_name = socket.gethostname()
  host_ip = socket.gethostbyname(host_name)

 
  sender = "*****@*****.**"
  receiver = "{}@example.com".format(os.environ.get('USER'))
  body = "Please check your system and resolve the issue as soon as possible"
  
  if cpu_usage > 80:
    error_message = "Error - CPU usage is over 80%"
    message = emails.generate_error_report(sender, receiver, error_message, body)
    emails.send_email(message)
  elif mem_usage[1] < 500:
    error_message = "Error - Available memory is less than 500MB"
    message = emails.generate_error_report(sender, receiver, error_message, body)
    emails.send_email(message)
  elif disk_usage[3] > 80:
    error_message = "Error - Available disk space is less than 20%"
    message = emails.generate_error_report(sender, receiver, error_message, body)
    emails.send_email(message)
  elif host_ip != "127.0.0.1":
    error_message = "Error - localhost cannot be resolved to 127.0.0.1"
    message = emails.generate_error_report(sender, receiver, error_message, body)
    emails.send_email(message)
def email_warning(message):
    sender = "*****@*****.**"
    receiver = "{}@example.com".format(os.environ["USER"])
    subject = message
    body = "Please check your system and resolve the issue as soon as possible."
    message = emails.generate_error_report(sender, receiver, subject, body)
    emails.send_email(message)
Esempio n. 3
0
def email_warning(error):
    sender = "*****@*****.**"
    recipient = '*****@*****.**'
    subject = error
    body = "Please check your system and resolve the issue as soon as possible."
    message = emails.generate_error_report(sender, recipient, subject, body)
    emails.send_email(message)
def report_it(subject_line):
    sender = "*****@*****.**"
    receiver = "{}@example.com".format("student-00-1f8a9ce3b2b1")
    subject = subject_line
    body = "Please check your system and resolve the issue as soon as possible."
    message = emails.generate_error_report(sender, receiver, subject, body)
    emails.send(message)
def generate_error_report(subject_line):
    body = "Please check your system and resolve the issue as soon as possible."
    sender = "*****@*****.**"
    recipient = "*****@*****.**"
    subject = subject_line
    gen_err_email = emails.generate_error_report(sender, recipient, subject,
                                                 body)
    emails.send(gen_err_email)
def email_error(error_message):
    user = "******"
    sender = "*****@*****.**"
    receiver = f"{user}@example.com"
    subject = f"Error - {error_message}"
    body = "Please check your system and resolve the issue as soon as possible"
    message = generate_error_report(sender, receiver, subject, body)
    send_email(message)
Esempio n. 7
0
def error_mail(subject_line):
    sender = "*****@*****.**"
    recipient = "*****@*****.**"
    subject = subject_line
    body = "Please check your system and resolve the issue as soon as possible."

    msg = emails.generate_error_report(sender, recipient, subject, body) #create a instance of generate_error_report method from emails.py
    emails.send_email(msg) #send email to the recipient using the send_email method from emails.py
Esempio n. 8
0
def error_mail(subject_line):
    sender = "*****@*****.**"
    recipient = "*****@*****.**"
    subject = subject_line
    body = "Please check your system and resolve the issue as soon as possible."

    msg = emails.generate_error_report(
        sender, recipient, subject, body
    )  # Call generate_error_report in emails.py with the prior attributes.
    emails.send_email(
        msg
    )  # Send error report to recipient with the send_email function in emails.py.
Esempio n. 9
0
def send_report(subject):
    """sends the report when the system unhealthy"""

    #generate the email template
    sender = "automation@example"
    receiver = "<user>@example.com"
    subject = subject
    body = "Please check your system and resolve the issue as soon as possible."
    message = emails.generate_error_report(sender, receiver, subject, body)

    #Send the email
    emails.send(message)
def send_email(error_code):
    sender = '*****@*****.**'
    receiver = '*****@*****.**'
    subject_list = [None] * 4
    subject_list[0] = 'Error - CPU usage is over 80%'
    subject_list[1] = 'Error - Available disk space is less than 20%'
    subject_list[2] = 'Error - Available memory is less than 500MB'
    subject_list[3] = 'Error - localhost cannot be resolved to 127.0.0.1'
    subject = subject_list[error_code]
    body = 'Please check your system and resolve the issue as soon as possible'

    message = emails.generate_error_report(sender, receiver, subject, body)
    emails.send(message)
    return '{}. Email has been send'.format(subject)
Esempio n. 11
0
def health_check():   
  """Checks for the CPU usage, disk space, available memory, and name resolution. 
  Emails in case of abnomalities""" 

  cpu_percent = psutil.cpu_percent(interval = 1) 
  disk_usage = psutil.disk_usage('/').percent
  mem = psutil.virtual_memory().free 
  mem_MB = mem/(1024*1024)
  looback = socket.gethostbyname('localhost')
  user = os.environ.get('USER')

  sender = '*****@*****.**' 
  receiver = user+'@example.com'
  body = 'Please check your system and resolve the issue as soon as possible'
#Report an error if CPU usage is over 80%
  if cpu_percent > 80: 
    subject = 'Error - CPU usage is over 80%'
    print(subject) 
    message = emails.generate_error_report( sender, receiver, subject, body)
    emails.send_email(message)
#Report an error if available disk space is lower than 20%
  elif disk_usage < 20: 
    subject ='Error - Available disk space is less than 20%'
    message = emails.generate_error_report( sender, receiver, subject, body)
    emails.send_email(message)
#Report an error if available memory is less than 500MB
  elif mem_MB < 500: 
    subject = 'Error - Available memory is less than 500MB'
    message = emails.generate_error_report( sender, receiver, subject, body)
    emails.send_email(message)
#Report an error if the hostname "localhost" cannot be resolved to "127.0.0.1"
  elif loopback != '127.0.0.1': 
    subject = 'Error - localhost cannot be resolved to 127.0.0.1'
    message = emails.generate_error_report( sender, receiver, subject, body)
    emails.send_email(message) 
  return  
Esempio n. 12
0
def main():
    # Report an error if CPU usage is over 80%
    cpu_usage_alert = psutil.cpu_percent() > 80

    # Report an error if available disk space is lower than 20%
    available_disk = psutil.disk_usage('/')
    available_disk_alert = available_disk.percent > 80

    # Report an error if available memory is less than 500MB
    available_memory_alert = psutil.virtual_memory(
    ).available < 500 * 1024 * 1024

    # Report an error if the hostname "localhost" cannot be resolved to "127.0.0.1"
    try:
        if socket.gethostbyname('localhost') == "127.0.0.1":
            localhost_alert = False
        else:
            localhost_alert = True
    except socket.error:
        localhost_alert = True

    # create a subjects dictionary
    subjects = {
        "Error - CPU usage is over 80%": cpu_usage_alert,
        "Error - Available disk space is less than 20%": available_disk_alert,
        "Error - Available memory is less than 500MB": available_memory_alert,
        "Error - localhost cannot be resolved to 127.0.0.1": localhost_alert,
    }

    # detect errors
    for subject, error in subjects.items():
        # send an email if there is an error
        if error:
            # send an error report
            sender = "*****@*****.**"
            receiver = "{}@example.com".format(os.environ.get('USER'))
            body = "Please check your system and resolve the issue as soon as possible."

            message = emails.generate_error_report(sender, receiver, subject,
                                                   body)
            emails.send_email(message)
Esempio n. 13
0
def main():
    check_subj_dict = {
        check_cpu_usage: "Error - CPU usage is over 80%",
        check_disk_usage: "Error - Available disk space is less than 20%",
        # If the assignment check fails, use "500MB" (Qwiklabs had it like this)
        check_mem_usage: "Error - Available memory is less than 500 MB",
        check_localhost: "Error - localhost cannot be resolved to 127.0.0.1",
    }

    for check in check_subj_dict:
        if not check():  # If a check fails
            message = emails.generate_error_report(
                "*****@*****.**",
                # For the cron job at Coursera, hard-coding the email was the answer
                "{}@example.com".format(os.environ.get('USER')),
                check_subj_dict[
                    check],  # Get the subject that corresponds to the function
                "Please check your system and resolve the issue as soon as possible."
            )

            emails.send_email(message)
Esempio n. 14
0
def main():
    if cpu_usage() > 80:
        subject = 'Error - CPU usage is over 80%'
    elif disk_avail() < 20:
        subject = 'Error - Available disk space is less than 20%'
    elif ram_free() < 500:
        subject = 'Error - Available memory is less than 500MB'
    elif not check_localhost():
        subject = 'Error - localhost cannot be resolved to 127.0.0.1'
    else:
        subject = ''

    print(subject)

    if bool(subject):
        sender = "*****@*****.**"
        receiver = "{}@example.com".format(os.environ.get('USER'))
        body = """
            Please check your system and
            resolve the issue as soon as possible"""
        message = emails.generate_error_report(sender, receiver, subject, body)
        emails.send_email(message)
Esempio n. 15
0
def main():
    checks = [(check_disk_full,
               "Error - Available disk space is less than 20%"),
              (check_cpu_constrained, "Error - CPU usage is over 80%"),
              (check_no_network,
               "Error - localhost cannot be resolved to 127.0.0.1"),
              (check_memfree, "Error - Available memory is less than 500MB")]
    everything_ok = True
    for check, subject in checks:
        if check():
            #print(subject)
            sender = "*****@*****.**"
            recipient = "<ENTER USERNAME>"
            body = "Please check your system and resolve the issue as soon as possible."
            emails.send_email(
                emails.generate_error_report(sender, recipient, subject, body))

            everything_ok = False
    if not everything_ok:
        sys.exit(1)

    #print("Everything is OK.")
    sys.exit(0)
Esempio n. 16
0
def main():
    checks = [
        (check_cpu_constrained, "Error - CPU usage is over 80%"),
        (check_disk_full, "Error - Available disk space is less than 20%"),
        (check_memory, "Error - Available memory is less than 500MB"),
        (check_localhost, "Error - localhost cannot be resolved to 127.0.0.1")
    ]
    everything_ok = True
    for check, msg in checks:
        if check():
            subject = msg
            everything_ok = False

    if not everything_ok:
        sender = '*****@*****.**'
        recipient = '{}@example.com'.format(os.environ.get('USER'))
        body = 'Please check your system and resolve the issue as soon as possible'
        message = emails.generate_error_report(sender, recipient, subject,
                                               body)
        emails.send_email(message)
        sys.exit(1)

    print("Everything ok.")
    sys.exit(0)
Esempio n. 17
0
def check_localhost():
    """check localhost is correctly configured on 127.0.0.1"""
    localhost = socket.gethostbyname('localhost')
    return localhost == '127.0.0.1'
 
to_be_checked = {
    check_cpu_usage(): "CPU usage is over 80%",
    check_disk_usage("/"): "Available disk space is less than 20%",
    check_available_memory(): "Available memory is less than 500MB",
    check_localhost(): "localhost cannot be resolved to 127.0.0.1"
}

error = False
for action, message in to_be_checked.items():
    if not action: 
        error_message = message
        error = True
# print(error_message)
 
# Send email
if error:
    try:
        sender = "*****@*****.**"
        receiver = "{}@example.com".format(os.environ.get('USER'))
        subject = "Error - {}".format(error_message)
        body = "Please check your system and resolve the issue as soon as possible"
        message = generate_error_report(sender, receiver, subject, body)
        send_email(message)
        print('test')
    except NameError:
        pass
Esempio n. 18
0
def check_cpu_usage(time):
    cu = psutil.cpu_percent(time)
    return cu < 80


def check_memory_usage():
    mu = round(psutil.virtual_memory().available / 1024 / 1024)
    return mu > 500


def check_localhost_resolution():
    return socket.gethostbyname('localhost') == '127.0.0.1'


if __name__ == "__main__":
    if not check_cpu_usage(1):
        subject_line = "Error - CPU usage is over 80%"
    elif not check_disk_usage("/"):
        subject_line = "Error - Available disk space is less than 20%"
    elif not check_memory_usage():
        subject_line = "Error - Available memory is less than 500MB"
    elif not check_resolve_hostname():
        subject_line = "Error - localhost cannot be resolved to 127.0.0.1"

    body = "Please check your system and resolve the issue as soon as possible."
    message = emails.generate_error_report("*****@*****.**",
                                           "{}@example.com".format(user),
                                           subject_line, body)
    emails.send_email(message)
Esempio n. 19
0
def sendEmail(subject):
    msg = emails.generate_error_report(
        "*****@*****.**", "<user>@example.com", subject,
        "Please check your system and resolve the issue as soon as possible.")
    emails.send(msg)
        return False


def socket_check(name, ip):  #localhost, 127.0.0.1
    ip_address = socket.gethostbyname(name)
    if ip != ip_address:
        print("Name: " + name + " -> " + "ip: " + ip_address)
        return True
    else:
        return False


sender = "*****@*****.**"
receiver = "{}@example.com".format(os.environ.get('USER'))
email_subject = ""
body = "Please check your system and resolve the issue as soon as possible."

if cpu_check(80, 4):
    email_subject = "Error - CPU usage is over 80%"
if disk_chek(20):
    email_subject = "Error - Available disk space is less than 20%"
if memory_check(500):
    email_subject = "Error - Available memory is less than 500MB"
if socket_check("localhost", "127.0.0.1"):
    email_subject = "Error - localhost cannot be resolved to 127.0.0.1"

if len(email_subject) > 0:
    message = emails.generate_error_report(sender, receiver, email_subject,
                                           body)
    emails.send_email(message)
Esempio n. 21
0

def connected_to_internet():
    try:
        response = requests.get("http://www.google.com.pk")
    except:
        print("Internet Connectivity Not Found")
        exit(0)


if __name__ == '__main__':
    connected_to_internet()
    data = read.Data("email_list.csv")
    body = read.getBody("email_body.txt")
    sender = input("Please Enter Sender's Gmail: ")
    subject = input("Please Enter Subject Line: ")
    attatchment = input(
        "Name.ext of attachement\n(leave blank for no attachment): ")
    mail_server = emails.authenticate(sender)
    for person in data:
        if attatchment.strip() == "":
            message = emails.generate_error_report(sender, person["email"],
                                                   subject, body)
        else:
            message = emails.generate(sender, person["email"], subject, body,
                                      attatchment)
        send_emails(str(person["name"]), message, mail_server)
    #Log Out
    mail_server.quit()
    print("All mails sent successfully")
Esempio n. 22
0
def page(subject_line):
    message = emails.generate_error_report('*****@*****.**', recipient,
                                           subject_line, body)
    emails.send_email(message)
Esempio n. 23
0
def send_email(subject):
    email = emails.generate_error_report("*****@*****.**", "*****@*****.**",
                                  subject,
                                  "Please check your system and resolve the issue as soon as possible.")
    emails.send_email(email)
Esempio n. 24
0
    disk = shutil.disk_usage("/")
    host = socket.gethostbyname('localhost')

    sub = ""
    if cpu > 0.8:
        sub = "Error - CPU usage is over 80%"

    elif disk[2] / disk[0] < 0.2:
        sub = "Error - Available disk space is less than 20%"

    elif ram < 500:
        sub = "Error - Available memory is less than 500MB"

    elif host != "127.0.0.1":
        sub = "Error - localhost cannot be resolved to 127.0.0.1"

    else:
        pass

    if sub:
        sender = "*****@*****.**"
        recipient = "*****@*****.**"
        subject = sub
        body = "Please check your system and resolve the issue as soon as possible."
        message = emails.generate_error_report(sender, recipient, subject,
                                               body)
        emails.send_email(message)

    else:
        pass
Esempio n. 25
0
def alert(subject):
    message = emails.generate_error_report(sender, recipient, subject, body)
    emails.send_email(message)
import shutil
import psutil
import emails
import socket
import os

SENDER = '*****@*****.**'
RECEIVER = '*****@*****.**'
BODY = "Please check your system and resolve the issue as soon as possible."

cpu_usage = psutil.cpu_percent()
disk_usage = shutil.disk_usage("/")
# Check CPU Usage
if cpu_usage > 80:
    subject = "Error - CPU usage is over 80%"
    message = emails.generate_error_report(SENDER, RECEIVER, subject, BODY)
    emails.send_email(message)

# Check Disk Usage
if disk_usage[2] / disk_usage[0] < 0.2:
    subject = "Error - Available disk space is less than 20%" 
    message = emails.generate_error_report(SENDER, RECEIVER, subject, BODY)
    emails.send_email(message)

# Check Memory Availability
if disk_usage[2] / (10**6) < 500:
    subject = "Error - Available memory is less than 500MB"
    message = emails.generate_error_report(SENDER, RECEIVER, subject, BODY)
    emails.send_email(message)

# Check Host Name Resolvability