Archive for April, 2009

Posted by 6bytes at 23, April, 2009

Category: CentOS, Linux

Tags: , , ,

First download and unpack xmpppy.  To install it go into the unpacked directory and run:

python setup.py install

Next you need a script that will do the sending.  Use your favourite text editor to create file i.e.:

vim xsend.py

Just paste below script which was taken from original site.  Create another jabber account that you’ll send messages from and remember to change values in line 20 to those new login details.

#!/usr/bin/python
# $Id: xsend.py,v 1.8 2006/10/06 12:30:42 normanr Exp $
import sys,os,xmpp,time

if len(sys.argv) < 2:
 print "Syntax: xsend JID text"
 sys.exit(0)

tojid=sys.argv[1]
text=' '.join(sys.argv[2:])

jidparams={}
if os.access(os.environ['HOME']+'/.xsend',os.R_OK):
 for ln in open(os.environ['HOME']+'/.xsend').readlines():
 if not ln[0] in ('#',';'):
 key,val=ln.strip().split('=',1)
 jidparams[key.lower()]=val
for mandatory in ['jid','password']:
 if mandatory not in jidparams.keys():
 open(os.environ['HOME']+'/.xsend','w').write('JID=your_jabber_id@your_jabber_server.com\nPASSWORD=your_password')
 print 'Please point ~/.xsend config file to valid JID for sending messages.'
 sys.exit(0)

jid=xmpp.protocol.JID(jidparams['jid'])
cl=xmpp.Client(jid.getDomain(),debug=[])

con=cl.connect()
if not con:
 print 'could not connect!'
 sys.exit()
print 'connected with',con
auth=cl.auth(jid.getNode(),jidparams['password'],resource=jid.getResource())
if not auth:
 print 'could not authenticate!'
 sys.exit()
print 'authenticated using',auth

#cl.SendInitPresence(requestRoster=0)   # you may need to uncomment this for old server
id=cl.send(xmpp.protocol.Message(tojid,text))
print 'sent message with id',id

time.sleep(1)   # some older servers will not send the message if you disconnect immediately after sending

#cl.disconnect()

All you need to do now is to run the script :) First run will create a file in you home directory which should contain username and password from line 20. Second run should accually send the message.

./xsend.py your_main_jabber@your_jabber.com Hello world!

Now set up your monitoring scripts that will send you jabber messages when something goes wrong.