Powiadamianie sms’em w systemie Linux
Ostatnio wykonałem szybką i sprawną migrację całego mojego sprzętu na dystrybucję GNU/Linux Gentoo (spokojnie, nie opuszczam Ubuntu ani nie odwracam się tylem do Community!). Potrzebowałem narzędzia, które informowałoby mnie w każdym momencie i w każdym czasie o zakończeniu kompilacji na moim komputerze domowym. Pomyślałem oczywiście o powiadamianiu SMS. Przykładowy scenariusz:
Wychodzę na uczelnię z domu zostawiając kompilację kdebase. W trakcie 3 wykładu przychodzi do mnie sms informujący mnie o stanie wykonanej czynności, ostatnio zainstalowanych pakietach, czasie kompilacji. Loguję się poprzez ssh z komórki na mój komp, odświeżam pliki konfiguracyjne i zamykam system.
Niemożliwe? Bynajmniej!! Możliwe w 100%! Krótki i treściwy How To:
Zaznaczam, że powiadamianie sms’em możliwe jest na tą chwilę tylko i wyłącznie dla użytkowników posiadających konto GMail oraz komórkę w sieci PlusGSM. W najbliższej przyszłości (czyt. po sesji :P) mam zamiar przerodzić projekt w większą aplikację do powiadamiania użytkownika o dowolnej czynności. HowTo jest tylko szkicem! Aplikacja „mail” powinna znajdować się w paczce „sendmail”.
Konfiguracja powiadamiania SMS'em w Linuksie
1. Konfigurujemy sSMTP. Oczywiście komendy typowe dla systemu Gentoo zamieniamy na typowe dla Ubuntu (sudo apt-get install itp.). Gdyby ktoś bardzo chciał mogę dać zaproszenie do GMail.
2. Tworzymy plik wykonywalny (w dowolnym miejscu, może być np. /opt/powiadom) i wpisujemy doń:
#!/bin/bash Po czym modyfikujemy do dla swoich potrzeb. Powyższy przeznaczony jest do powiadamiania o statusie wykonania Emerge. Po drobnej modyfikacji może on służyć do powiadamiania o statusie wykonania dist-upgrade lub innej czynności związanej z apt-get.
if [ $? = 0 ];
then
{
echo "Emerge zakonczone, ostatni zainstalowany pakiet:";
genlop -lnu | sed -e "s/.*\([/]\+\)/\1/" | tail -n 2;
} | mail -s "LOG" -c 48xxxxxxxxx@text.plusgsm.pl 48xxxxxxxx@text.plusgsm.pl;
else { echo "EMERGE NIEUDANE"; } | mail -s "LOG" -c 48xxxxxxxxxxxxxxx@text.plusgsm.pl 48xxxxxxxxxxxx@text.plusgsm.pl ;
fi
Modyfikacje wnosić możemy w dowolny sposób, pamiętając o zachowaniu składni języka BASH.
3. Dodajemy dowiązanie symboliczne naszego pliku wykonywalnego do /usr/sbin/powiadom
4. Przykładowe wywołanie skryptu:
$ sudo apt-get dist-upgrade; sudo powiadom
# emerge -vaD world; powiadom
Skrypt jest na razie tylko skryptem. Nie ponoszę odpowiedzialności za jego działanie. Jest to pomysł na większe dzieło, którym zamierzam się zając w najbliższych tygodniach. Rozszerzenie funkcji powiadamiania na inne sieci GSM + uniezależnienie skryptu od GMail + zwiększenie funkcjonalności + działanie na wszystkich systemach + uniwersalność. To będzie mój cel w najbliższym czasie. Dodatkowym celem będzie rozszerzenie funkcjonalności na serwery XMPP.
http://ceti.pl/~miki/komputery/sms.html
to jest w portage, emerge sms
w debianie sms-pl
enjoy. hth.
Znam doskonale to narzędzie. Nie wystarcza do moich potrzeb, jest zwyczajnie nieefektywne, jest za stare, nie działa. Początkowo chciałem z niego skorzystać, lecz okazało się że nie jest w stanie sprostać moim wymaganiom.
Unhandled exception in main: Unknown SMS->WWW gateway. taki przykład ;)
#v+
Program do wysyłania SMS‘ów
Po ponad półtorarocznej przerwie program ożył ponownie! 29 grudnia 2006 została wydana nowa wersja. Zapraszam do pobrania i używania. #v-
czytanie ze zrozumieniem siada?
anounce: http://www.ma.krakow.pl/pipermail/sms-users/2006q4/000306.html #v+
Wszystko dzieki zaangazowaniu Adama Michalskiego, ktory
przeprowadzil aktualizacje programu do aktualnych bramek operatorow.
Zyczmy mu wytrwalosci ;-) #v-
I ta właśnie najnowsza wersji mi nie działa :-). Gdyby działała HowTo wyglądałby inaczej :) Poza tym – wysyłanie sms via WWW gateway nie jest tym czego potrzebowałem. Jestem w dość dużej sieci osiedlowej i nigdy nie udaje mi się wbić w limit. Pewnie inni także tak mają.
To pisz bugreport, chyba nie warto wymyslac jeszcze raz kola? A widac ze komus sie chcialo zrobic update wersji.. to teraz poprawiac bugi pewnie tez.
Powodzenia, howgh!
Chyba nie przemyślałeś wszystkiego zanim zacząłeś pisać. Ja pisałbym to w Perlu użyłbym LWP i może Net::Jabber, może sendxmpp (powinno Cie zainteresować)? Czemu sam skrypt nie uruchamia emerge?
Racja – nie przemyślałem. Potrzebowałem szybkiego narzędzia do szybkiego załatwienia problemu, dostępne oprogramowanie nie działało więc w jakieś 20 minut zrobiłem to-to na górze. Jak pisałem to tylko szkic bez większego pomysłu (prócz pomysłu „musi działać”). Sendxmpp na tapecie leży już od dłiuższego czasu, niestety brak czasu :(.
Skrypt nie uruchamia emerge gdyż w założeniu ma być uniwersalny. Oczywiście mógłbym dodać do niego wywołanie emerge z parametrami przekazanymi do skryptu, jednak wtedy straciłbym możliwość „monitorowania” działania innych aplikacji (jak np. ściągania płyty iso wgetem :)).
Dzięki Seban za wskazówki co do LWP, Perl i Net::Jabber. Jak napisałem – po sesji wezmę się na poważnie za to. Na razie jest to tylko ułatwienie sobie życia :).
Ja do powiadomień używam programu erasms nelchael’a. W zupełności spełnia moje oczekiwania.
Hmmm… nie widzę powodu, dla którego skrypt ograniczony jest tylko do GMaila.
Chyba, że chodzi o informację o nadawcy, bo u mnie ta linijka:
echo -e „test smsa\n.\n” | mail -s „test” \
-c 48xxxxxxxxx@text.plusgsm.pl \
48xxxxxxxxx@text.plusgsm.pl
wystarczyła.
dostałes