Python監(jiān)控主機是否存活并以郵件報警
利用Python寫了簡單測試主機是否存活腳本,此腳本不適于線上使用,因為網(wǎng)絡延遲、丟包現(xiàn)象會造成誤報郵件,那么后續(xù)會更新判斷三次ping不通后再發(fā)報警郵件,并啟用多線程處理。
#!/usr/bin/env python # coding:UTF-8 import time import pexpect import smtplib from email.mime.text import MIMEText mail_host = "smtp.163.com" #定義smtp服務器 mail_to = "baojingtongzhi@163.com" #郵件收件人 mail_from = "monitor@163.com" #郵件發(fā)件人 mail_pass = "123456" #郵件發(fā)件人郵箱密碼 while True: def Mail(error_ip): date = time.strftime('%Y-%m-%d %H:%M:%S') msg = MIMEText("%s Ping %s failed from 255.252." % (date, error_ip)) msg['Subject'] = "Ping %s failed." % error_ip #定義郵件主題 msg['From'] = mail_from msg['To'] = mail_to try: s = smtplib.SMTP() #創(chuàng)建一個SMTP()對象 s.connect(mail_host, "25") #通過connect方法連接smtp主機 s.starttls() #啟動安全傳輸模式 s.login(mail_from,mail_pass) #郵箱賬戶登錄認證 s.sendmail(mail_from, mail_to, msg.as_string()) #郵件發(fā)送 s.quit() #斷開smtp連接 except Exception, e: print str(e) ip_list = ['192.168.18.10', '192.168.18.11', '192.168.18.12'] for ip in ip_list: ping = pexpect.spawn('ping -c 1 %s' % ip) check = ping.expect([pexpect.TIMEOUT,"1 packets transmitted, 1 received, 0% packet loss"],2) #2代表超時時間 if check == 0: Mail(ip) print "Ping %s failed,Have email." % ip if check == 1: print "Ping %s successful." % ip print "Sleep 10s..." time.sleep(10) #直接運行 # python ping.py Ping 192.168.18.10 successful. Ping 192.168.18.11 successful. Ping 192.168.18.12 successful. Sleep 10s...
以上就是本文的全部內(nèi)容,希望對大家學習Python監(jiān)控主機是否存活并以郵件報警有所幫助。
相關文章
python中關于CIFAR10數(shù)據(jù)集的使用
這篇文章主要介紹了python中關于CIFAR10數(shù)據(jù)集的使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02Python使用psutil庫對系統(tǒng)數(shù)據(jù)進行采集監(jiān)控的方法
利用psutil庫可以獲取系統(tǒng)的一些信息,如cpu,內(nèi)存等使用率,從而可以查看當前系統(tǒng)的使用情況,實時采集這些信息可以達到實時監(jiān)控系統(tǒng)的目的。本文給大家介紹Python psutil系統(tǒng)監(jiān)控的相關知識,感興趣的朋友一起看看吧2021-08-08Tensorflow的可視化工具Tensorboard的初步使用詳解
這篇文章主要介紹了Tensorflow的可視化工具Tensorboard的初步使用詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-02-02Python中執(zhí)行MySQL結果限制和分頁查詢示例詳解
這篇文章主要為大家介紹了Python中執(zhí)行MySQL結果限制和分頁查詢示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-11-11Python多進程通信Queue、Pipe、Value、Array實例
這篇文章主要介紹了Python多進程通信Queue、Pipe、Value、Array實例,queue和pipe用來在進程間傳遞消息、Value + Array 是python中共享內(nèi)存映射文件的方法,需要的朋友可以參考下2014-11-11