Önce kuralım (Ubuntu Server'a kurulum anlatılmıştır):
# apt-get install sendxmpp
Kullanıcı adı, server, port bilgilerini gireceğimiz .sendxmpprc dosyasını kullanıcı dizinine oluşturuyoruz. Kullanılabilecek formatlar şöyleymiş:
CONFIGURATION FILE
You may define a ’~/.sendxmpprc’ file with the necessary data for your
xmpp-account, with a line of the format:
user@server password componentname
e.g.:
# my account
alice@jabber.org secret
(’#’ and newlines are allowed like in shellscripts). You can add a host
(or IP address) if it is different from the server part of your JID:
# account with specific connection host
alice@myjabberserver.com;foo.com secret
You can also add a port if it is not the standard XMPP port:
# account with weird port number
alice@myjabberserver.com:1234 secret
Of course, you may also mix the two:
# account with a specific host and port
alice@myjabberserver.com;foo.com:1234 secret
NOTE: for your security, sendxmpp demands that the configuration file
is owned by you and readable only to you (permissions 600).
Ben şu formatı kullandım:
Kullanıcı@server.com:Port Şifre
Aslında bu dosyayı oluşturmadan da bilgileri parametrelerle girerek mesaj göndermek mümkün. Fakat bu durumda kullanıcı ve şifre deşifre olacağından ben güvenlik adına bu şekilde kullanmayı tercih etmiyorum. Zaten program da güvenliği önemsediğini .sendxmpprc dosyasının izinlerini 600 yapmadan çalışmayarak bize gösteriyor. Konfigürasyon dosyasına gerekli bilgileri girdikten sonra hemen dosya izinlerini düzenliyoruz:
chmod 600 ~/.sendxmpprc
Bu ayarlar normalde yeterli fakat Openfire Server kullanıyorsanız şu hata mesajı geliyor.
# echo "Bu bir komut satırı mesajıdır" | sendxmpp -s Konsol mesajı test@abc.local
Error 'AuthSend': error: not-authorized[?]
Yetklendirmede yaşanan bu sorunu çözmek için, /usr/share/perl5/Net/XMPP/Protocol.pm dosyasını açıyoruz:
nano /usr/share/perl5/Net/XMPP/Protocol.pm
Aşağıdaki satırı buluyoruz:
- return $self->AuthSASL(%args);
Başına # (diyez) koyuyoruz ve dosyayı kayıt ediyoruz:
- #return $self->AuthSASL(%args);
Şimdi bir mesaj denemesi yapabiliriz:
echo "Bu bir komut satırı mesajıdır" | sendxmpp -s Konsol mesajı kullanıcı@abc.loca
Hepsi bu kadar.
Şimdi swatch ile log dosyalarını dinlemeye alıp, istediğim durumlara göre swatch'ın aksiyon alarak bana anında mesaj göndermesi için kolları sıvayalım.
Kaynaklar :
[1] http://www.kilrathy.net/sites/xmpp-meldungen-via-script-senden.html
[2] http://manpages.ubuntu.com/manpages/intrepid/man1/sendxmpp.1.html
[3] http://www.djcbsoftware.nl/code/sendxmpp/