Suite à un petit souci de serveur, les emails de confirmation d'inscription n'étaient plus envoyés. Si vous n'avez pas reçu votre mot de passe, utilisez l'option "Mot de passe oublié" et vous recevrez le nouveau. (February 23) x

En raison de spams récurrents, les messages des nouveaux inscrits sont modérés a priori. Ne vous inquiétez pas si vous ne voyez pas apparaitre votre message immédiatement sur le forum. (November 04, 2021) x

Sujet fermé
Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

[Scindage] RaspiSMS et exécution de commande
#1

bonjour comment vous allez, j'avez un souci concernant ma Raspberry Pi, plus particulièrement avec l'outil RaspiSMS.
En effet je veux controler mon Raspberry Pi à distance, c'est à dire en lui envoyant des commandes SMS. Actuellement, je parviens à envoyer ces commandes SMS, et RaspiSMS reconnait ces SMS comme des commandes, ce qui est génial, Mais mon souci en est qu'il exécute pas ces commandes SMS comme je le veux, c'est à dire, y'a aucune réaction de la Raspberry Pi.

Par exemple si j'envoie une commande SMS: [shutdown:][login:*****@example.fr][password:*****] , il n'exécute pas la commande shutdown.

Quelqu'un à une idée pour me faire avancer?
#2

salut,

tu utilises quoi comme login pour passer la commande?

sachant que pi n'a pas les droits sur ce genre de commande... un sudo dans la commande pourrait fonctionner, à tester
#3

Salut Wared,
Au fait ce qu'il a cripté (*****@example.fr), c'est le login. Les étoiles c'est admin.

En effet, le message je l'envoie à partir de mon téléphone. J'ai un script dans lequel j'ai mis shutdown et reboot, de ce fait si je lui envoie un SMS comportant ces deux actions (shutdown ou reboot) il doit les exécuter. Mais malheureusement pas de réponse de la part du Pi.

Merci
#4

oui, mais la commande shutdown doit etre donnée avec sudo
#5

Ok.

Si j'ai bien compris, le sudo doit être dans SMS, (par exemple si je dois envoyer un SMS comme shutdown je dois mettre sudo shutdown),ou bien je dois mettre le sudo dans le script?

Merci de m'éclaircir.
#6

Tu le mets dans le script.
Et bien entendu, ton utilisateur qui exécute le script doit pouvoir exécuter le sudo shutdown sans avoir à entrer le mot de passe.
Je rappelle que la syntaxe précise de shutdown est:
Code :
shutdown -h now
Et que pour le reboot, il vaut mieux utiliser:
Code :
shutdown -r now

Dernier point de détail: lorsqu'on fait un script qui sera lancé par un système automatique (crontab ou gammu, par exemple), les paths utilisateurs ne sont pas chargés (ils se chargent lors d'un login), il faut donc autant que possible utiliser le chemin complet vers l'exécutable.
Ton script devra donc contenir une ligne de la forme:
Code :
/usr/bin/sudo /sbin/shutdown -h now
#7

Génial ça à marcher comme je l'avais souhaité.
Je parviens à envoyer des commandes SMS à mon Pi, et celui ci les exécute très bien.

c'est avec la méthode qu' à proposer Crazycat:

Tu le mets dans le script.
Et bien entendu, ton utilisateur qui exécute le script doit pouvoir exécuter le sudo shutdown sans avoir à entrer le mot de passe.
Je rappelle que la syntaxe précise de shutdown est:
shutdown -h now
Et que pour le reboot, il vaut mieux utiliser:
shutdown -r now
Dernier point de détail: lorsqu'on fait un script qui sera lancé par un système automatique (crontab ou gammu, par exemple), les paths utilisateurs ne sont pas chargés (ils se chargent lors d'un login), il faut donc autant que possible utiliser le chemin complet vers l'exécutable.
Ton script devra donc contenir une ligne de la forme:
/usr/bin/sudo /sbin/shutdown -h now

Vraiment Merci beaucoup à tout le groupe de l'attention que vous avez porté à mes problèmes.
#8

tant mieux !
#9

Bonjour comment vous allez, je pense que tout va bien.

Au fait, concernant toujours la manipulation de mon Raspberry à distance par sms (c'est à dire en utilisant par exemple la commande SMS à savoir shutdown ou reboot), je voulais en lançant le SMS au Raspberry, ce dernier m'envoie un SMS de retour me disant que: si c'est Reboot " Votre Rapberry vient de redémarrer" ou bien si c'est shutdown "Votre Raspberry est éteint".

Est ce que cela est possible?

Vos idées seront les bien venues .
#10

Il faut te tourner vers le rc.d: http://www.commentcamarche.net/faq/18644...t-d-ubuntu

Note que pour le reboot, c'est dans rc6.d qu'il faut placer le script.

Certains me diront qu'on aurait pu utiliser crontab avec @reboot, mais non car je ne suis pas certain du moment auquel ça s'exécute, et si c'est trop tôt, ça ne marchera pas.
#11

Salut CrazyCat est ce que vous pouvez être plus explicite car j'ai pas bien compris votre réponse.

Jusqu'à présent je ne parviens pas à franchir cette étape c'est à dire, permettre à mon Raspberry de me notifier qu'il vient de redémarrer (si c'est la commande reboot qui est exécutée) ou bien qu'il avait été éteint( si c'est le shutdown qui était lancée).

Au fait ce que je veut faire c'est de lui envoyer un SMS (comportant shutdown ou reboot vu que j'ai déja créé un script pour l'exécution de ces deux commandes), maintenant une fois le SMS est lancé au Raspberry, cet dernier m'envoie un SMS retour me disant qu'il va redémarrer ou bien qu'il va s'éteindre.

Bien-sur ces phrases de notifications "il va redémarrer ou bien qu'il va s'éteindre" seront mises dans le script, mais comment les intégrer pour que le script puisse les prendre en compte.
#12

alors pouqrquoi dans ton sms ne pas faire appel à un script plutot qu'a une commande

ca te permettras de chainer plusieurs commandes : envoi sms > retour sms "je vais redemarrer" > reboot >retour sms "demarré"
#13

Je vais essayer d'être plus explicite. Les répertoires rcX.d sont des répertoires particuliers du système, qui contiennent des scripts qui sont lancés en fonction des "run-level", ce qui correspond à l'état de la machine.

Pour lancer un script lorsque la RPi reçoit un ordre de reboot, il faut placer ce script dans le répertoire /etc/rc6.d/, 6 étant l'initialisation d'un reboot.
Pour l'arrêt, il faut mettre le script dans /etc/rc0.d/, 0 étant l'ordre d'arrêt.
Pour la fin d'un démarrage, je pense que /etc/rc3.d/ est le plus approprié (système chargé en mode multi-utilisateurs, tous les systèmes sont actifs, dont le réseau et les périphériques).

Tu auras plus d'infos à propos des Run-levels sur https://fr.wikipedia.org/wiki/Run_level
Sujet fermé


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)