Scripter des lignes de commande SSH
Scripter des lignes de commande SSH
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
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
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
Re: Scripter des lignes de commande SSH
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
Rflink, IPX800V3, carte 8 rl IP, IR_V3, Xiaomi gateway, JPI/APK/tel Android dédié, Somfy RTS, Rf433Mhz, Xiaomi, Bm280 , Broadlink,WifiLights
Re: Scripter des lignes de commande SSH
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.
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
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
Re: Scripter des lignes de commande SSH
Tu as un exemple ici en php : viewtopic.php?f=59&t=38112&p=645827#p645827
Re: Scripter des lignes de commande SSH
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à
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
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
Re: Scripter des lignes de commande SSH
salut
tu peut utiliser ce script
tu l'apelle "ssh_command.php"
tu copie colle ce qui suit a l'interieur:
ensuite dans la requete tu met ssh-command.php @IP user pass Tacommande
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;
?>
Re: Scripter des lignes de commande SSH
oui j'ai également essayé avec ce script et il ne se passes rien,
voici ma requête
voici ma requête
- Pièces jointes
-
- jeedom-script.PNG (22.02 Kio) Consulté 9223 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
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
Re: Scripter des lignes de commande SSH
cela doit être a cause de ton sudo il doit attendre un mot de passe
Re: Scripter des lignes de commande SSH
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
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
Re: Scripter des lignes de commande SSH
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..
Re: Scripter des lignes de commande SSH
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.
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
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
Re: Scripter des lignes de commande SSH
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.
et avec le script sous jeedom tu appelle ce .sh qui lui executera ce qu'il faut.
Re: Scripter des lignes de commande SSH
Wahoo ... pourquoi faire compliquer quand on peut faire simple ? ^^ pourquoi mettre du PHP la dedans ?
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
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 !
Merci à toute la communauté pour le boulot !
Re: Scripter des lignes de commande SSH
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 ?
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
Re: Scripter des lignes de commande SSH
Salut,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 ?
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)
Helper Officiel Jeedom
Widgets développés
Téléchargement d'icônes domotique (Topic Forum)
Re: Scripter des lignes de commande SSH
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!
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
Qui est en ligne ?
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité