Bad Daemons

sendxmpp: Notificaciones ante eventos en un Jabber [Actualización]

Instalamos python-xmpp:

# aptitude install python-xmpp


Y creamos el siguiente script:

#!/usr/bin/env python

import xmpp
from os import sys as sys

username = 'usuario'
passwd = 'password'
file_name = sys.argv[1]
to = sys.argv[2]

file = open(file_name,'r')

msg = file.read()

client = xmpp.Client('elbinario.net',debug=[])
client.connect(server=('elbinario.net',5222))
client.auth(username, passwd, 'botty')
client.sendInitPresence()
message = xmpp.Message(to, msg)
message.setAttr('type', 'chat')
client.send(message)

Se ejecuta tal que así:

python sendxmpp.py /path/to/file example@jid.com

Moraleja: a veces es mejor dedicar un tiempo a hacer tus herramientas que usar herramientas ya hechas.


Hoy me han enseñado esta curiosa herramienta. Cómo dice el título, permite enviar mensajes. La parte de "ante eventos" debemos ponerla nosotras, según lo que queramos. Para instalarlo:

aptitude install sendxmpp

O podemos compilarlo:

aptitude install libconfig-yaml-perl libnet-xmpp-perl libanyevent-xmpp-perl
git clone https://github.com/lhost/sendxmpp.git
perl Makefile.PL
make
make install

Un ejemplos de uso:

#!/bin/bash
last=$(last -i | sed 's/ \+/|/g' | cut -d'|' -f3 | tail -n3 | head -n1)
echo "Se ha iniciado sesión desde $last." | sendxmpp -n -s "Inicio de sesión en $HOSTNAME" \ 
drymer@elbinario.net &

La primera variable, $last, muestra la IP del último inicio de sesión, con ayuda de sed, cut, tail y head.

En ~/.sendxmpprc ponemos el inicio de sesión: mayordomo@elbinario.net soyMayordomo

Perfecto para diversas tareas de administración y scripting.