SmsAlert : Envoyer des sms gratuitement depuis ses serveurs
vendredi 15 février 2008 Par macsim, dans Debian -# 137 - Fil RSS
Il y a quelques jours je me demandais comment être alerté gratuitement par sms depuis mes serveurs en cas de soucis ou panne.
Alors après avoir épluché google et parcouru une dizaine de sites gratuits mais payant (cherchez l'erreur) après avoir demandé à mes connaissances et ne trouvant pas de solution j'ai fini par pondre la solution suivante, alors oui ce n'est pas parfait, oui ce n'est pas 100% libres, oui c'est du bidouillage, mais bon ça fait ce que je veux, comme je le veux.Alors pour cette recette j'ai besoin :
Premièrement je vais créer un compte sur google calendar.

Une fois le compte créé je vais surGoogle Calendar je clique sur la flèche à côté de mon agenda:

et je choisis notification.
Une fois sur la fenêtre des options de notification je clique sur : "Configurez votre mobile pour recevoir des notifications".

Dans la fenêtre de paramètre je saisis mon numéro de mobile, je clique sur "Envoyer le code de vérification".

Je reçois un texto du genre:
Je saisi le code et "Terminer la configuration."
Maintenant dans la fenêtre de notification je choisis d'envoyer par défaut un rappel via SMS.

Voilà tout est bon, passons maintenant à smsalert.
J'ai créé deux fichiers d'envoi de sms (sms.php et sms_plan.php) qui utilisent les deux excellentes classes de Mr Alexander Skakunov.
Quelques explications:
Dans le dossier il y a deux classes GoogleCalendarWrapper et MyCurl, j'ai légèrement retouché ces deux classes.
J'ai ajouté l'ajout de notification dans les nouveaux évènement et j'ai changé le chemin des logs curl.
Le principal soucis c'est que google calendar ne permet pas de notification inférieure à 5 minutes ce qui est normal pour utilisation classique de google calendar. J'ai donc rusé, sms.php ajoute l'évènement 5 minutes et 30 secondes après l'instant T.
Configuration:
Maintenant j'édite sms.php et sms_plan.php pour modifier la ligne:
Voila la configuration est terminée.
Il n'y a plus qu'à utiliser.
Utilisation de sms.php
Sms.php permet d'envoyer un sms en ajoutant l'évènement 5 minutes et 30 secondes après l'instant T.
Ce qui réalise un envoi presque immédiat.
Syntaxe:
et dans les 30secondes qui suivent on reçoit le sms.
J'utilise sms.php pour mes scripts avec cron.
Utilisation de sms_plan.php
Sms_plan.php lui ajoute un évènement à une heure précise pour planifier quelque chose.
Syntaxe:
Exemple:
Voilà le système est près.
Alors, quels sont les avantages de cette méthode, premièrement elle permet d'être informé rapidement d'un incident sur un serveur par sms, deuxièmement l'agenda google gardera une trace de ces évènements et pour finir c'est gratuit ;).
Si vous connaissez un meilleur moyen de réaliser ça je suis preneur.
Si vous voulez ajouter les évènements sur un autre agenda que celui par défaut, l'explication est dans les fichiers sms.php et sms_plan.php.
- D'un compte google.
- D'un serveur debian.
- De php5-cli et php5-curl.
- 2 super classes php
GoogleCalendarWrapper et Simple CURL Wrapper de Alexander Skakunov - Un peu de patience.
Premièrement je vais créer un compte sur google calendar.

Une fois le compte créé je vais surGoogle Calendar je clique sur la flèche à côté de mon agenda:

et je choisis notification.
Une fois sur la fenêtre des options de notification je clique sur : "Configurez votre mobile pour recevoir des notifications".

Dans la fenêtre de paramètre je saisis mon numéro de mobile, je clique sur "Envoyer le code de vérification".

Je reçois un texto du genre:
Votre code de vérification de Google Agenda est XXXXXX
Je saisi le code et "Terminer la configuration."
Maintenant dans la fenêtre de notification je choisis d'envoyer par défaut un rappel via SMS.

Voilà tout est bon, passons maintenant à smsalert.
J'ai créé deux fichiers d'envoi de sms (sms.php et sms_plan.php) qui utilisent les deux excellentes classes de Mr Alexander Skakunov.
cd ~
wget http://macsim.labolinux.net/upload/smsalert.tar.gz
tar zxvf smsalert.tar.gz
cd smsalert
Quelques explications:
Dans le dossier il y a deux classes GoogleCalendarWrapper et MyCurl, j'ai légèrement retouché ces deux classes.
J'ai ajouté l'ajout de notification dans les nouveaux évènement et j'ai changé le chemin des logs curl.
Le principal soucis c'est que google calendar ne permet pas de notification inférieure à 5 minutes ce qui est normal pour utilisation classique de google calendar. J'ai donc rusé, sms.php ajoute l'évènement 5 minutes et 30 secondes après l'instant T.
Configuration:
Maintenant j'édite sms.php et sms_plan.php pour modifier la ligne:
$gc = new GoogleCalendarWrapper("VOTRE_MAIL", "VOTRE_PASS");avec mon compte google.
Voila la configuration est terminée.
Il n'y a plus qu'à utiliser.
Utilisation de sms.php
Sms.php permet d'envoyer un sms en ajoutant l'évènement 5 minutes et 30 secondes après l'instant T.
Ce qui réalise un envoi presque immédiat.
Syntaxe:
$php sms.php "TITRE" "MESSAGE"Exemple:
$php sms.php "Serveur Mail" "Reboot"
et dans les 30secondes qui suivent on reçoit le sms.
J'utilise sms.php pour mes scripts avec cron.
Utilisation de sms_plan.php
Sms_plan.php lui ajoute un évènement à une heure précise pour planifier quelque chose.
Syntaxe:
(L'heure doit être de la forme HH:MM).
$php sms_plan.php "TITRE" "MESSAGE" HEURE
Exemple:
$php sms_plan.php "Serveur Mail" "Reboot dans 1h" 16:00.
Voilà le système est près.
Alors, quels sont les avantages de cette méthode, premièrement elle permet d'être informé rapidement d'un incident sur un serveur par sms, deuxièmement l'agenda google gardera une trace de ces évènements et pour finir c'est gratuit ;).
Si vous connaissez un meilleur moyen de réaliser ça je suis preneur.
Si vous voulez ajouter les évènements sur un autre agenda que celui par défaut, l'explication est dans les fichiers sms.php et sms_plan.php.




Commentaires
1. Le vendredi 15 février 2008 à 14:56, par atlas95
2. Le vendredi 15 février 2008 à 15:09, par Barez
3. Le vendredi 15 février 2008 à 17:44, par Kolia
4. Le vendredi 15 février 2008 à 21:16, par Eric
Ajouter un commentaire
Les commentaires pour ce billet sont fermés.