• Navega al azar. Pulsa las flechas y deja que la fortuna te dispense un artículo.

    viernes, 21 de septiembre de 2012

    Recibir avisos por email o SMS cuando tu sitio web esté caido

    He aquí un procedimiento simple, fácil y gratuito para recibir una alerta en tu buzón de correo o, incluso, en tu teléfono móvil cuando tu sitio web esté caido o inaccesible por la razón que sea.

    Para ello vamos a aprovechar las funcionalidades de Google Docs y el calendario de Google. Obviamente necesitas tener una cuenta Google.

    1) Creamos una hoja de cálculo con los parámetros necesarios. Puedes hacer una copia de esta o usar el código que aparece al final de este artículo. Ambas opciones son exactamente iguales pero usando el enlace anterior realizará una copia instantánea.

    2) En el menú "Monitorizar sitio web" pulsa "Iniciar".

    3) Escribe la dirección (URL) del sitio web que quieres monitorizar en la celda B2.

    4) Escribe la dirección de correo en la que quieres recibir las alertas en la celda B3.

    5) Si deseas recibir notificación vía SMS* deja la celda B4 tal cual. En caso contrario escribe NO.

    6) En el menú "Monitorizar sitio web" pulsa  "Empezar monitorización".


    * Notificaciones vía SMS


    Para poder recibir alertas vía SMS cuando tu sitio web esté caido debes tener un número de teléfono asociado al calendario de Google. Para ello pulsa en el menú desplegable con el icono de una rueda dentada.

    Haz clic en configuración.

    Elige la pestaña "configuración para móviles".

    Ahí tienes que elegir tu país y escribir tu número de móvil.

    Recibirás un código de verificación que debes introducir para luego pulsar "Finalizar configuración".


    A partir de aquí ya puedes recibir alertas vía SMS sobre los eventos de tu calendario. Entre ellos estarán, a partir de ahora, las alertas que se generen cuando tu sitio web esté caido o inaccesible.

    Puedes cambiar esta configuración cuando quieras.

    Eso si, Google no garantiza que los mensajes SMS lleguen siempre y/o puntualmente. Las alertas vía email, sin embargo, funcionan bastante bien.

    Ahora ya puedes dormir tranquilamente. Cuando tu sitio web tenga dificultades lo sabrás.

    Código fuente de la hoja de cálculo:



    /**   Monitor de sitios web   **/
    /**   + info en:  http://spn314.blogspot.com/2012/09/recibir-avisos-por-email-o-sms-cuanto.html       **/

    function onOpen() {

      var sheet = SpreadsheetApp.getActiveSpreadsheet();

      var menu = [
        {name: "Step 1: Iniciar", functionName: "init"},
        {name: "Step 2: Empezar monitorizacion", functionName: "init"}
      ];

      sheet.addMenu("Monitorizar sitio web", menu);  
      sheet.toast("Pulsa Iniciar en el menú Monitorizar sitio web para empezar.", "Bienvenid@", -1);
    }

    function init() {
      if (ScriptApp.getScriptTriggers().length == 0) {
        ScriptApp.newTrigger("websiteMonitor")
          .timeBased().everyMinutes(5).create();
      }

      SpreadsheetApp.getActiveSpreadsheet()
        .toast("Google Docs empezará ahora a monitorizar tu(s) sitio(s) web."
               + "You may please close this sheet!",
               "Initialized", -1);
    }

    function websiteMonitor()
    {
      var response, error, code, urls;

      urls = SpreadsheetApp.getActiveSheet().getRange("B2").getValue();
      urls = urls.replace(/\s/g, "").split(",");

      for (var i=0; i<urls.length; i++) {
     
        var url = urls[i];
     
        if (!ScriptProperties.getProperty(url)) {
            ScriptProperties.setProperty(url, 200);
        }
     
        try {  
          response = UrlFetchApp.fetch(url);
        } catch(error) {
          updateLog(url, -1);
          continue;
        }
     
        code = response.getResponseCode();
        updateLog(url, code);
     
      }
    }

    function updateLog(url, code) {

      if (ScriptProperties.getProperty(url) == code)
        return;

      ScriptProperties.setProperty(url, code);

      var sheet = SpreadsheetApp.getActiveSheet();

      var row   = sheet.getLastRow() + 1;  
      var time  = new Date();
      var msg = "caido";

      if (code == 200)
        msg = "funcionando";

      msg = "Este sitio web parece que está " + msg + "  " + url;

      sheet.getRange(row,1).setValue(time);
      sheet.getRange(row,2).setValue(msg);

      var email = sheet.getRange("B3").getValue();
      MailApp.sendEmail(email, msg, url);

      var now   = new Date(time.getTime() + 10000);

      if (sheet.getRange("B4").getValue().toLowerCase() == "si")
        CalendarApp.createEvent(msg, now, now).addSmsReminder(0);
    }


    Solo tú tendrás acceso a esta información. Puedes dejar de recibir notificaciones simplemente dejando en blanco la celda B3 (email) y en la B4 escribir NO. 


    No hay comentarios:

    Publicar un comentario

    El Plus

    Conexiones



    El Twitter