寫一個腳本,判斷本機的80端口是否開啓着,如果開啓着什麼都不做,如果發現端口不存在,那麼重啓一下httpd服務,併發郵件通知你自己。腳本寫好後,可以每一分鐘執行一次,也可以寫一個死循環的腳本,30s檢測一次。
#!/usr/bin/env python
#!coding=utf-8
import os
import time
import sys
import smtplib
from email.mime.text import MIMEText
from email.MIMEMultipart import MIMEMultipart
def sendsimplemail (warning):
msg = MIMEText(warning)
msg['Subject'] = 'python first mail'
msg['From'] = 'root@localhost'
try:
smtp = smtplib.SMTP()
smtp.connect(r'smtp.126.com')
smtp.login('要發送的郵箱名', '密碼')
smtp.sendmail('要發送的郵箱名', ['要發送的郵箱名'], msg.as_string())
smtp.close()
except Exception, e:
print e
while True:
http_status = os.popen('netstat -tulnp | grep httpd','r').readlines()
try:
if http_status == []:
os.system('service httpd start')
new_http_status = os.popen('netstat -tulnp | grep httpd','r').readlines()
str1 = ''.join(new_http_status)
is_80 = str1.split()[3].split(':')[-1]
if is_80 != '80':
print 'httpd 啓動失敗'
else:
print 'httpd 啓動成功'
sendsimplemail(warning = "This is a warning!!!")
else:
print 'httpd正常'
time.sleep(5)
except KeyboardInterrupt:
sys.exit('\n')