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)
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)
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
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.
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)
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
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)
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)
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)
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)
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)
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
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)
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)
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")
def page(subject_line): message = emails.generate_error_report('*****@*****.**', recipient, subject_line, body) emails.send_email(message)
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)
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
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