PHP Classes

File: monitor.py

Recommend this page to a friend!
  Classes of Chun-Sheng, Li   IFTTT PHP Server Monitor   monitor.py   Download  
File: monitor.py
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: IFTTT PHP Server Monitor
Check if a server is up and notify a IFTTT service
Author: By
Last change:
Date: 7 months ago
Size: 1,575 bytes
 

Contents

Class file image Download
import os import sys import json import datetime import urllib.request setting_path = './settings.txt' if os.path.isfile(setting_path) is False: print(setting_path + ' is not found.') sys.exit(1) with open(setting_path, 'r') as file_handler: settings = file_handler.readlines() if len(settings) != 2: print('settings lenght should be 2') sys.exit(1) monitored_url = settings[0][0:-1] maker_service_url = settings[1][0:-1] if monitored_url[0:4] != 'url=': print('url setting should begin with url=') sys.exit(1) if maker_service_url[0:24] != 'ifttt_maker_service_url=': print('IFTTT maker service url should begin with ifttt_maker_service_url=') sys.exit(1) response = urllib.request.urlopen(monitored_url[4:]) if response.status == 200: print(monitored_url[4:] + ' website healthy is good!') sys.exit(0) request = urllib.request.Request(maker_service_url[24:]) request.add_header('Content-Type', 'application/json; charset=utf-8') json_payload = { 'date': datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), 'status': monitored_url[4:] + ' website is down!', 'status_code': response.status, } jsondata = json.dumps(json_payload) json_data_bytes = jsondata.encode('utf-8') request.add_header('Content-Length', len(json_data_bytes)) response = urllib.request.urlopen(request, json_data_bytes) resp_text = response.readlines() if response.status == 200: print(resp_text[0].decode('utf-8'))