Service commande

Comment créer un service commande dans playSMS

scénario

Vous souhaitez connaitre les dernières personnes à s'être connecté au serveur dans lequel vous avez

installé playSMS, connaitre l'occupation de la RAM, de la mémoire ou encore éteindre l'ordinateur ..., mais

vous n'êtes pas physiquement proche de votre serveur.

Avec le service Commande de playSMS cela est possible. Vous pouvez avec un SMS demander à votre

ordinateur d'exécuter une commande et vous retourner le résultat par SMS, dans ce tutoriel, vous verrez

la procédure à suivre pour atteindre cet objectif avec playSMS. Pour fixer les idées et pour tester, nous

allons ici exécuter un programme qui dit depuis quand l'ordinateur est allumé est exécutant la commande

uptime

Implémentation

Pour créer un service commande, dans le menu principale faite Services → service commande , la page

d'accueil du service ressemble à ceci:

Service commande playsms

(note: vous aurez cette interface uniquement avec la version 0.9.7 > de playSMS)

Appuyez sur 'Ajouter une commande SMS', vous êtes alors redirigez vers cette page

Comme vous pouvez le voir, nous choississons CMD comme mot clé du service. A l'arrivé des SMS avec ce

mot-clé, le script nommé uptime.sh situé dans le répertoire /var/www/playsms/bin, sera exécuté

avec comme paramètre le numéro du téléphone de l'émetteur du SMS (c'est à dire {SMSSENDER}).

Vous pouvez lui donner plusieurs autres paramètres relatifs à votre SMS, à savoir :

{SMSDATETIME} sera remplacé par la date/heure du SMS reçu

{SMSSENDER} sera remplacé par le numero de l'émetteur

{COMMANDKEYWORD} sera remplacé par le mot-clé du service

{COMMANDPARAM} sera remplacé par les paramètre additionnel du SMS passe au serveur

{COMMANDRAW} Sera remplacé par le message complet

Une option nouvelle à playSMS (version 1.9.7) vous pouvez retourner le résultat de la commande par

SMS simplement en cochant le case 'Activer le renvoi du résultat'

Une fois les champs remplis, appuyez sur 'Ajouter' pour valider le service. Refaite

Services → service commande pour revenir à la page d'accueil du service, vous verrez le service

créé pour votre utilisateur (admin pour mon cas) :

Maintenant il nous reste à créer le script uptime.sh dans le répertoire /var/www/playsms/bin, celui-ci

existe déjà dans le code source de playSMS vous n'avez qu'a l'éditer et le modifier un peu :

cd /var/www/playsms/bin
vim uptime.sh
#!/bin/bash
## Login et mot de passe de l'utilisateur playsms que vous voulez utiliser
L="admin"
P="admin"
## URL de playSMS avec un slash final
W="http://localhost/playsms/"
## Les informations que vous voulez avoir
## ex : uname -a, uptime
M1=`uname -nsr`
M2=`uptime`
M="$M1 $M2"
## Ne modifiez pas le reste du fichier 
## Code pour utiliser le numéro de l'émetteur
## remplacement de + par %2B (la forme urlencodé de +)
DF=`echo $1 | sed s/+/%2B/`
## demandé au service de retourner le résultat à l'émetteur
$(which lynx) -dump "$W?app=webservices&u=$L&p=$P&ta=pv&to=$DF&msg=$M" >/dev/null 2>&1

Et voilà, il ne vous reste plus qu'à tester le service

Comment utiliser le service commande de playSMS

Tout aussi simplement que les autres services de playSMS, pour exécuter un service commande, vous

n'avez qu'à envoyer un SMS avec comme premier mot le mot-clé du service et y ajouter les paramètres.

Pour notre cas très simple, ou nous n'avons qu'un seul paramètre utilisé par le script, il nous suffit d'envoyer

dans notre SMS :

CMD

au numéro de la passerelle et le tour est joué, en réponse vous recevrez un message du genre :

Linux debian.uriellabs.com 2.6.32.-5-686 02:28:35 up 14:19, 5 users, load average: 
0.04, 0.03, 0,00 @Uriellabs

m'informe que mon serveur est allumé depuis 02h 28 min 35 s, et qu'au moment de la reception

du SMS il y a 4 utilisateurs de connecté dans le serveur (les utilisateur se sont juste des terminaux

ouverts).