J’essaye depuis quelques jours d’envoyer une commande ssh via un script. Après pas mal de lecture, je bloque, si quelqu’un à l’idée…
Voilà, j’ai installé pour les tests un raspberry avec jeedom et omxplayer et je voudrais pouvoir envoyer la lecture d’une vidéo. Via Putty et les commandes ssh d’omxplayer, pas de soucis, j’envoie la commande :
omxplayer /home/jeedom/media/fire.mov
et la lecture se passe bien.
Du coup, j’ai voulu le lancer depuis jeedom par un script :
J’ai lu pas mal de chose sur les clés à générer, mais pas trouvé de solutions.
Bien sûr j’ai vu la possibilité d’utiliser le plugin ssh commander, mais bon, celui ci fonctionnera-t-il dans mon utilisation (les deux appli sur le même raspberry) et puis après toute ces recherches j’aimerais bien savoir où je me trompe.
Merci
Un merci pour ta remarque pour présenter mes commandes.
Et un grand merci pour ton bloc code.
Pour compléter ta réponse si d’autres personnes veulent faire la même chose, lorsque j’ai envoyer la commande, j’ai eu la réponse :
failed to open vchiq instance
Du coup, j’ai trouvé comme solution via putty :
sudo usermod -a -G video $(whoami)
Mais pas suffisant, du coup j’ai donné les droits :
sudo chmod 777 /dev/vchiq
J’ai cru comprendre que cela n’était pas très bien au niveau sécurité
Je rechercherais une solution plus tard, vu que je ne suis pas connecter sur le réseau et que je n’y connais pas grand chose.
Encore merci @olive, grand pas dans l’avancer de mon projet !!
Si tu as 5 minutes pourrais-tu commenter ton code vite fait, pour ma culture ( je n’ai pas de logique de programmation)
Mais bon, je ne comprends pas pourquoi cela ne voulais pas par le plugin script…pas grave
Bonne journée
A l’intérieur d’un bloc de code on est nativement en langage PHP
$req est une variable qui mémorise la ou les commandes qui vont être exécuter dans le shell
( la concaténation de texte peut être complexe)
exemple qui n’a rien a voir avec le sujet
$req = 'curl -i -XPOST "http://'.$host.':'.$port.'/write?db='.$base.'" --data-binary "'.$table;
$req = $req.','.$tag;//(facultatif) mettre // en tête de ligne pour ignorer
$req = $req.' '.$c1.'='.$input1.','.$c2.'='.$input2.','.$c3.'='.$input3.','.$c4.'='.$input4.' "';
(Quand une commande deviens compliqué il vaut mieux la décomposée pour rendre sa lecture et le débogage plus facile)
$scenario->setLog permet d’écrire dans le log du scenario
$scenario->setLog("Coucou ecriture dans le log .........du scenario la !");
la 1ere fois pour voir si l’on ne se trompe pas dans la requette (pas obligatoire )
la 2iéme fois avec $output0 permet de voir ce que la commande a répondu.
le shell_exec lui tu l’aura compris exécute dans le shell la commande qui est dans la variable $req
pour faire simple si ta commande ne renvoie rien et que tu ne veut rien tracer
l’on aurait écrit ça en une ligne :