Python監(jiān)控主機(jī)是否存活并以郵件報(bào)警
利用Python寫了簡(jiǎn)單測(cè)試主機(jī)是否存活腳本,此腳本不適于線上使用,因?yàn)榫W(wǎng)絡(luò)延遲、丟包現(xiàn)象會(huì)造成誤報(bào)郵件,那么后續(xù)會(huì)更新判斷三次ping不通后再發(fā)報(bào)警郵件,并啟用多線程處理。
#!/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服務(wù)器 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)建一個(gè)SMTP()對(duì)象 s.connect(mail_host, "25") #通過connect方法連接smtp主機(jī) s.starttls() #啟動(dòng)安全傳輸模式 s.login(mail_from,mail_pass) #郵箱賬戶登錄認(rèn)證 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代表超時(shí)時(shí)間 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) #直接運(yùn)行 # python ping.py Ping 192.168.18.10 successful. Ping 192.168.18.11 successful. Ping 192.168.18.12 successful. Sleep 10s...
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家學(xué)習(xí)Python監(jiān)控主機(jī)是否存活并以郵件報(bào)警有所幫助。
相關(guān)文章
python中關(guān)于CIFAR10數(shù)據(jù)集的使用
這篇文章主要介紹了python中關(guān)于CIFAR10數(shù)據(jù)集的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02Python使用psutil庫(kù)對(duì)系統(tǒng)數(shù)據(jù)進(jìn)行采集監(jiān)控的方法
利用psutil庫(kù)可以獲取系統(tǒng)的一些信息,如cpu,內(nèi)存等使用率,從而可以查看當(dāng)前系統(tǒng)的使用情況,實(shí)時(shí)采集這些信息可以達(dá)到實(shí)時(shí)監(jiān)控系統(tǒng)的目的。本文給大家介紹Python psutil系統(tǒng)監(jiān)控的相關(guān)知識(shí),感興趣的朋友一起看看吧2021-08-08Python 機(jī)器學(xué)習(xí)第一章環(huán)境配置圖解流程
機(jī)器學(xué)習(xí)是一類算法的總稱,這些算法企圖從大量歷史數(shù)據(jù)中挖掘出其中隱含的規(guī)律,并用于預(yù)測(cè)或者分類,更具體的說,機(jī)器學(xué)習(xí)可以看作是尋找一個(gè)函數(shù),輸入是樣本數(shù)據(jù),輸出是期望的結(jié)果,只是這個(gè)函數(shù)過于復(fù)雜,以至于不太方便形式化表達(dá)2021-11-11Tensorflow的可視化工具Tensorboard的初步使用詳解
這篇文章主要介紹了Tensorflow的可視化工具Tensorboard的初步使用詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-02-02Python中執(zhí)行MySQL結(jié)果限制和分頁(yè)查詢示例詳解
這篇文章主要為大家介紹了Python中執(zhí)行MySQL結(jié)果限制和分頁(yè)查詢示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11Python多進(jìn)程通信Queue、Pipe、Value、Array實(shí)例
這篇文章主要介紹了Python多進(jìn)程通信Queue、Pipe、Value、Array實(shí)例,queue和pipe用來在進(jìn)程間傳遞消息、Value + Array 是python中共享內(nèi)存映射文件的方法,需要的朋友可以參考下2014-11-11用python介紹4種常用的單鏈表翻轉(zhuǎn)的方法小結(jié)
這篇文章主要介紹了用python介紹4種常用的單鏈表翻轉(zhuǎn)的方法小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02