/** Monitor your Site's Uptime **/ function isMySiteDown() { // Get the URL of the Website to monitor var url = SpreadsheetApp.getActiveSheet().getRange("E3").getValue(); // HTTP Response Code of the last server request if (!ScriptProperties.getProperty("status")) { ScriptProperties.setProperty("status", 200); } var response, error; try { // Fetch the web page using UrlFetchApp response = UrlFetchApp.fetch(url); } catch(error) { insertData(error, -1, "Website down"); return; } var code = response.getResponseCode(); // code = 200 means the fetch request was successful if (code == 200) insertData("Up", code, "Website up"); else insertData(response.getContent()[0], code, "Website down"); } function insertData(error, code, msg) { // Ignore if the error message is logged already if (ScriptProperties.getProperty("status") == code) return; // Log the server error in a Google Sheet var sheet = SpreadsheetApp.getActiveSheet(); var email = sheet.getRange("E5").getValue(); var row = sheet.getLastRow() + 1; sheet.getRange(row,1).setValue(new Date()); sheet.getRange(row,2).setValue(error); sheet.getRange(row,3).setValue(code); // Send an email alert for the downtime ScriptProperties.setProperty("status", code); MailApp.sendEmail(email, msg, error); }
Source: https://habr.com/ru/post/141686/
All Articles