Mencionaste Gmail, por lo que te puede interesar Googlecl, que te ofrece controles de línea de comandos para cosas como Google Calendar y Documentos. Lamentablemente, todavía no son compatibles con Gmail, pero si su preferencia a largo plazo es utilizar una cuenta de Gmail como el centro de sus informes de estado, entonces googlecl puede ser su mejor opción.
En el corto plazo, puede probar googlecl ahora con los comandos para Calendario, Blogger o Documentos, todos los cuales ya son compatibles. Por ejemplo, estos comandos agregan eventos a Google Calendar:
google calendar add --cal server1 "I'm still alive at 13:45 today"
google calendar add "Server 1 is still alive at 2011-02-08 19:43"
...y estos comandos de consulta el calendario:
google calendar list --fields title,when,where --cal "commitments"
google calendar list -q party --cal ".*"
Ahora que lo pienso de ella, usted puede incluso encontrar que Calendar, Blogger o Docs son un lugar más apropiado que Gmail para el seguimiento de las actualizaciones de estado. Por ejemplo, una hoja de cálculo o un formato de calendario debería facilitar la generación de una representación gráfica de cuándo un servicio determinado estaba activo o inactivo.
Aún necesita escribir un pequeño programa que utiliza googlecl para consultar el calendario (o blog, o documentos, o lo que sea), pero una vez que tiene líneas de comando simples a su disposición, el resto debe ser bastante sencillo. Aquí hay un enlace a más información sobre GoogleCL:
http://code.google.com/p/googlecl/
Si realmente desea utilizar Gmail, y utilizarlo en este momento, que ofrecen una interfaz IMAP. Con IMAP, puede realizar numerosas operaciones simples, como determinar si existe un mensaje que contiene una línea de asunto especificada. He aquí un buen lugar para aprender acerca de los detalles:
http://mail.google.com/support/bin/answer.py?hl=en&answer=75725
Aquí está un ejemplo rápido que utiliza IMAP y Python a la lista de los diez correos electrónicos más-recientes que tienen una "etiqueta" dada Gmail:
import getpass, imaplib
# These gmail_* utilties are from https://github.com/drewbuschhorn/gmail_imap
import gmail_mailboxes, gmail_messages, gmail_message
# Update these next lines manually, or turn them into parms or somesuch.
gmail_account_name = "[email protected]" # Your full gmail address.
mailbox_name = "StatusReports" # Use Gmail "labels" to tag the relevant msgs.
class gmail_imap:
def __init__ (self, username, password):
self.imap_server = imaplib.IMAP4_SSL("imap.gmail.com",993)
self.username = username
self.password = password
self.loggedIn = False
self.mailboxes = gmail_mailboxes.gmail_mailboxes(self)
self.messages = gmail_messages.gmail_messages(self)
def login (self):
self.imap_server.login(self.username,self.password)
self.loggedIn = True
def logout (self):
self.imap_server.close()
self.imap_server.logout()
self.loggedIn = False
# Right now this prints a summary of the most-recent ten (or so) messages
# which have been labelled in Gmail with the string found in mailbox_name.
# It won't work unless you've used Gmail settings to allow IMAP access.
if __name__ == '__main__':
gmail = gmail_imap(gmail_account_name,getpass.getpass())
gmail.messages.process(mailbox_name)
for next in gmail.messages:
message = gmail.messages.getMessage(next.uid)
# This is a good point in the code to insert some kind of search
# of gmail.messages. Instead of unconditionally printing every
# entry (which is what the code below does), issue some sort of
# warning if the expected email (message.From and message.Subject)
# did not arrive within the expected time frame (message.date).
print message.date, message.From, message.Subject
gmail.logout()
Como se menciona en los comentarios del código, puede adaptarlo para emitir algún tipo de advertencia si los mensajes más recientes en ese buzón no contienen un mensaje esperado. A continuación, ejecute el programa Python una vez al día (o el período de tiempo que necesite) para ver si el mensaje de correo electrónico esperado nunca se recibió.
Muy interesante, gracias. Estaba interesado en el lector atom de gmail. Lo probaré. Nagios parecía un poco complicado para sumergirse en (?) – joeriks
@joeriks Bueno, siempre hay una compensación entre sus requisitos y una herramienta, pero tenía nagios en funcionamiento en un vpc de Debian en 30 minutos y lo había enviado todo mi equipo la hora ... – rene