diff --git a/lib/mails.py b/lib/mails.py index ff0621ababd93daff86c6bc8a203f92f0d2e22d0..c70ada748fadf8c66581318d207f45aa1d79ba37 100644 --- a/lib/mails.py +++ b/lib/mails.py @@ -113,3 +113,6 @@ def send_email_for_check(check): _send_email(subject, msg_text, extra_headers) +def send_email_report(text): + from . import config + _send_email(config.emails.report.subject, text) diff --git a/picomon.py b/picomon.py index 8a6c7bd0ab44799b96c40e0865581f6c76d1a141..5e52d55f53781f097a1420734e646c7ac3d5408d 100644 --- a/picomon.py +++ b/picomon.py @@ -30,11 +30,20 @@ def usr1_handler(signum, frame): print ("Signal SIGUSR1 caught, printing state of checks.") print (report) +def alarm_handler(signum, frame): + (report, err) = create_report() + if err: + mails.send_email_report(report) if __name__ == '__main__': # register signal handling signal.signal(signal.SIGUSR1, usr1_handler) + signal.signal(signal.SIGALRM, alarm_handler) + + # register report signal interval + if config.emails.report.every > 0: + signal.setitimer(signal.ITIMER_REAL, 60, config.emails.report.every) # Parse command line parser = argparse.ArgumentParser()