Comme annoncé, ce forum est passé en lecture seule au 1er janvier 2020. Désormais nous vous invitons à vous rendre sur notre nouvelle page communauté :
Image

A très bientôt !

Scripter des lignes de commande SSH

Réservé à l'utilisation et la programmation de scripts dans JEEDOM
Répondre
lebretla
Timide
Messages : 45
Inscription : 07 sept. 2016, 21:46
Contact :

Scripter des lignes de commande SSH

Message par lebretla » 13 nov. 2018, 18:48

Bonjour
tout d'abord désolé si je ne suis pas au bon endroit pour cette demande et si celle-ci a déjà fait l'objet de discussion mais je ne sais ni par ou commencer, ni quoi taper dans la recherche sur le forum.

Voici mon problème :
Je dispose d'un raspberry raccordé à un écran de portable qui fait office de tableau de bord en lançant automatiquement ma page design jeedom adhoc.

Parfois au lieu d'afficher d'afficher ma page webdesign, le raspberry me sers de cadre photo autonome (cad non connecté au lan de la maison) et un diaporama se lance en affichant les photos stockées sur la carte sd du raspberry.

Pour basculer d'une conf à l'autre, je me connecte en ssh sur le raspberry et lance la commande suivante pour éditer le fichier autostart de lxde : sudo nano ~/.config/lxsession/LXDE-pi/autostart
dans ce fichier je commente/décommente la ligne qui lance ma page web design jeedom ou l'appli qiv pour le diaporama.
Ensuite, j'enregistre les modifs et je reboote le raspberry.

Mon idée/besoin/demande serai de scripter ces actions pour qu'ensuite via un virtuel ou un scénario ou un cron, jeedom bascule d'une conf à l'autre.
Si c'est plus simple a scripter, je pourrais avoir 3 fichiers autostart (autosart, autostart_jeedom et autostart_diapo) et au lieu d'éditer le fichier autostart, je pourrai copier autostart_jeedom vers autostart lorsque je veux lancer la conf jeedom au reboot.

Mais voilà, je ne sais pas par ou commencer dans jeedom pour faire ceci.
merci
rpi2 + razberry + Rfxtrx433
fibaro FGD212, FGS-222, FGWPE-102, FGMS-001, FGFS-101, FGSD-002
Zipato PSP01, Danfoss LC13, Telecommande Kfob, Blyss
Présentation : viewtopic.php?f=50&t=20892&p=370190#p370190

Avatar de l’utilisateur
kerdale
Actif
Messages : 1644
Inscription : 25 sept. 2016, 11:38
Localisation : Penn-ar-Bed

Re: Scripter des lignes de commande SSH

Message par kerdale » 13 nov. 2018, 19:34

avec le plugin script
1 NUC & 1 RPI3/Msata V3.3.31, EnOcean, Z-wave,
Rflink, IPX800V3, carte 8 rl IP, IR_V3, Xiaomi gateway, JPI/APK/tel Android dédié, Somfy RTS, Rf433Mhz, Xiaomi, Bm280 , Broadlink,WifiLights

lebretla
Timide
Messages : 45
Inscription : 07 sept. 2016, 21:46
Contact :

Re: Scripter des lignes de commande SSH

Message par lebretla » 13 nov. 2018, 19:39

merci pour cette première piste qui confirme que mon post est au bon endroit ;-)
je vais éplucher la doc du plugin pour trouver comment me connecter en ssh au raspberry et passer mes commandes alors.
rpi2 + razberry + Rfxtrx433
fibaro FGD212, FGS-222, FGWPE-102, FGMS-001, FGFS-101, FGSD-002
Zipato PSP01, Danfoss LC13, Telecommande Kfob, Blyss
Présentation : viewtopic.php?f=50&t=20892&p=370190#p370190

Avatar de l’utilisateur
Jeandhom
Actif
Messages : 1386
Inscription : 20 oct. 2015, 17:32

Re: Scripter des lignes de commande SSH

Message par Jeandhom » 13 nov. 2018, 20:06

Tu as un exemple ici en php : viewtopic.php?f=59&t=38112&p=645827#p645827

lebretla
Timide
Messages : 45
Inscription : 07 sept. 2016, 21:46
Contact :

Re: Scripter des lignes de commande SSH

Message par lebretla » 14 nov. 2018, 13:26

J'avance, je cherche et parfois je trouve pas.
j'ai donc créé mon script avec le plugin script, pour l'instant, je teste un simple envoi de la commande sudo reboot mais j'ai le message d'erreur suivant lorsque je veux sauvegarder mon script :
Erreur dans l'exécution du terminal, la valeur retournée est : 255. Détails : Array ( [0] => Host key verification failed. )
je trouve rien de probant pour me dépatouiller de cette erreur sans doute un truc tellement simple que personne ne là ;-)
rpi2 + razberry + Rfxtrx433
fibaro FGD212, FGS-222, FGWPE-102, FGMS-001, FGFS-101, FGSD-002
Zipato PSP01, Danfoss LC13, Telecommande Kfob, Blyss
Présentation : viewtopic.php?f=50&t=20892&p=370190#p370190

Avatar de l’utilisateur
coke
Helper
Messages : 582
Inscription : 21 juil. 2014, 11:37
Localisation : essonne

Re: Scripter des lignes de commande SSH

Message par coke » 14 nov. 2018, 14:49

salut
tu peut utiliser ce script
tu l'apelle "ssh_command.php"

tu copie colle ce qui suit a l'interieur:

Code : Tout sélectionner

#!/usr/bin/php
<?php
//s'utilise en ajoutant en argument @ip login pwd commande
$Hostname=$argv[1];
$Username=$argv[2];
$Password=$argv[3]; 
$Command=$argv[4];
  
$ssh = ssh2_connect($Hostname, 22);
ssh2_auth_password($ssh, $Username, $Password);
$stream = ssh2_exec($ssh, $Command);
stream_set_blocking($stream, true);

//renvoi la sortie de la commande si besoin
$response = '';
while($buffer = fread($stream, 4096)) {
$response .= $buffer;
}
 
fclose($stream);
echo $response;
?>
ensuite dans la requete tu met ssh-command.php @IP user pass Tacommande
MERCI À L'ÉQUIPE POUR LE TAF

Helper Officiel Jeedom

lebretla
Timide
Messages : 45
Inscription : 07 sept. 2016, 21:46
Contact :

Re: Scripter des lignes de commande SSH

Message par lebretla » 14 nov. 2018, 16:03

oui j'ai également essayé avec ce script et il ne se passes rien,
voici ma requête
Pièces jointes
jeedom-script.PNG
jeedom-script.PNG (22.02 Kio) Consulté 4457 fois
rpi2 + razberry + Rfxtrx433
fibaro FGD212, FGS-222, FGWPE-102, FGMS-001, FGFS-101, FGSD-002
Zipato PSP01, Danfoss LC13, Telecommande Kfob, Blyss
Présentation : viewtopic.php?f=50&t=20892&p=370190#p370190

Avatar de l’utilisateur
coke
Helper
Messages : 582
Inscription : 21 juil. 2014, 11:37
Localisation : essonne

Re: Scripter des lignes de commande SSH

Message par coke » 14 nov. 2018, 16:12

cela doit être a cause de ton sudo il doit attendre un mot de passe
MERCI À L'ÉQUIPE POUR LE TAF

Helper Officiel Jeedom

lebretla
Timide
Messages : 45
Inscription : 07 sept. 2016, 21:46
Contact :

Re: Scripter des lignes de commande SSH

Message par lebretla » 14 nov. 2018, 16:20

pourtant il est caché sous mon gribouilli noir donc il est normalement envoyé par le script ssh_command
rpi2 + razberry + Rfxtrx433
fibaro FGD212, FGS-222, FGWPE-102, FGMS-001, FGFS-101, FGSD-002
Zipato PSP01, Danfoss LC13, Telecommande Kfob, Blyss
Présentation : viewtopic.php?f=50&t=20892&p=370190#p370190

Avatar de l’utilisateur
coke
Helper
Messages : 582
Inscription : 21 juil. 2014, 11:37
Localisation : essonne

Re: Scripter des lignes de commande SSH

Message par coke » 14 nov. 2018, 16:28

si tu te connecte en ssh sur ta machine et que tu tape ta commande sudo reboot en principe tu verra qu'il te demande le mot de pass root pour executer ta commande c'est ce que demande sudo..
MERCI À L'ÉQUIPE POUR LE TAF

Helper Officiel Jeedom

lebretla
Timide
Messages : 45
Inscription : 07 sept. 2016, 21:46
Contact :

Re: Scripter des lignes de commande SSH

Message par lebretla » 14 nov. 2018, 16:51

pour l'instant j'utilise putty et je me connecte en ssh et je m'authentifie
ensuite quand je tape sudo reboot, il ne me redemande pas le mdp root.
rpi2 + razberry + Rfxtrx433
fibaro FGD212, FGS-222, FGWPE-102, FGMS-001, FGFS-101, FGSD-002
Zipato PSP01, Danfoss LC13, Telecommande Kfob, Blyss
Présentation : viewtopic.php?f=50&t=20892&p=370190#p370190

Avatar de l’utilisateur
coke
Helper
Messages : 582
Inscription : 21 juil. 2014, 11:37
Localisation : essonne

Re: Scripter des lignes de commande SSH

Message par coke » 15 nov. 2018, 11:11

tu peut essayer de mettre ta commande dans un fichier .sh sur ton linux..
et avec le script sous jeedom tu appelle ce .sh qui lui executera ce qu'il faut.
MERCI À L'ÉQUIPE POUR LE TAF

Helper Officiel Jeedom

Avatar de l’utilisateur
BaaTuuC
Actif
Messages : 802
Inscription : 19 oct. 2015, 19:48

Re: Scripter des lignes de commande SSH

Message par BaaTuuC » 15 nov. 2018, 15:11

Wahoo ... pourquoi faire compliquer quand on peut faire simple ? ^^ pourquoi mettre du PHP la dedans ? :-o
Le plugin script est tout a fait capable de gérer le ssh ...

conseille: créer ton script bash depuis ton jeedom et test le (y compris connexion) pour qu'il soit executé.
Ensuite tu crées ton objet scrip dans ton jeedom. Le plugin ne fait qu'une surcouche de "présentation de ton script".
Petite particularité .. jeedom est executé par l'utilisateur www-data. C'est donc lui qui executera le script.

si tu dois faire du ssh je te conseille de faire de l'authentification par clé: attention il faut valider l'authent une premièere fois ..

Je résume:

1- tu fais ton script fonctionnelle qui répond a ton besoin connexion / modification fichier / reboot
2- tu crée une paire de clé a ton utilisateur www-data (attention par défaut il n'a pas de shell affecté)
3- tu lances une connexion manuelle avec www-data vers ton rpi
4- tu déplaces ton script dans le dossier du plugin script et tu crée ton objet script dans jeedom

et ca roule :)
Si ca marche .. c'est que ca peut faire plus !!

Merci à toute la communauté pour le boulot !

pifou
Timide
Messages : 36
Inscription : 12 mars 2018, 18:42

Re: Scripter des lignes de commande SSH

Message par pifou » 19 nov. 2019, 21:45

Bonjour,
J'ai cherché la doc du plugin script :
https://jeedom.github.io/plugin-script/ ... Anchor-1-8
j'ai trouvé aussi ce post intéressant pour du ssh sur une machine distante :
viewtopic.php?t=22557
Mais je n'ai pas trouvé l'astuce pour lancer un script local (pas distant en ssh) mais à qui je souhaite transmettre les droits root - donc une commande que je devrais lancer avec sudo en ligne de commande... Pourtant ça doit bien être possible ?
pi3 jeedom 3.2.11 sur raspbian-strech (9) z-wave system

Avatar de l’utilisateur
Salvialf
Helper
Messages : 1334
Inscription : 24 févr. 2018, 09:37
Contact :

Re: Scripter des lignes de commande SSH

Message par Salvialf » 20 nov. 2019, 17:14

Mais je n'ai pas trouvé l'astuce pour lancer un script local (pas distant en ssh) mais à qui je souhaite transmettre les droits root - donc une commande que je devrais lancer avec sudo en ligne de commande... Pourtant ça doit bien être possible ?
Salut,

Tu ne pourrais pas créer un script local contenant les droits root (*.sh par exemple) que tu appelles via le plugin script ? Il me semble que j'avais fait ça à une époque pour mettre à jour et redémarrer automatiquement mon raspi 1 fois par mois...
VM Jeedom 3.2.16 sous Proxmox 5.4 sur NUC5i5RYH (Debian 9.9)
Helper Officiel Jeedom
Widgets développés
Téléchargement d'icônes domotique (Topic Forum)

pifou
Timide
Messages : 36
Inscription : 12 mars 2018, 18:42

Re: Scripter des lignes de commande SSH

Message par pifou » 20 nov. 2019, 19:37

Salut,
en effet ça a marché, je ne savais pas c omment mettre le passwd dans le script mais en fait, il faut pas :) juste mettre "sudo" devant toutes les commandes qui le méritent, et mettre le login / passwd root (en l'occurence pi) dans le panel jeedom c'est suffisant.
merci!
pi3 jeedom 3.2.11 sur raspbian-strech (9) z-wave system

Répondre

Revenir vers « [Plugin officiel] Scripts »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités