Besoin d'aide script connexion ssh

Sincèrement ce n’est pas si compliqué que ça en a l’air :slight_smile: . Vu ce que nous dit @bartounet, c’est logique que ça ne fonctionne pas via un script, sauf à utiliser des clés ssh à la place des mots de passe. Donc si tu passes par le plugin ça fera un problème en moins, vu que les mots de passe y fonctionnent, et ton reboot sera alors opérationnel. Pour la copie des fichiers, si tu nous donnes plus de détails sur la source et la destination des fichiers, on pourra te détailler les commandes à passer.

Il y a longtemps, j’utilisais runovessh et sshpass pour faire ce genre de truc…

https://www.cyberciti.biz/faq/noninteractive-shell-script-ssh-password-provider/

Je connaissais pas ces outils.
Merci je les notes.

J’ai toujours utiliser SSH natif avec échange de clés SSH
Sinon en effet l’outil expect plutot pour les switch qui te permet de lancer des commandes qui attendent un retour
Et des séquences de caractères.
Par exemple sur certains switchs tu dois faire CTRL^Y pour passer la bannière.
Expect le permet.
Mais bon c’est de la bidouille… Pas très sécurisée

Ok c’est super sympa.
Donc voilà le topo. (Je te mets des copies d’écran pour que ce soit plus parlant.)

La carte sd de la caméra est composée des répertoires suivants.
24

Quand je me connecte via ssh ou ftp sur la caméra, je suis positionné directement dans le répertoire /home/Yi-hack-V4
20 21 23

Par contre, les vidéos sont enregistrées dans un répertoire + à la racine de la carte : tmp\sd\record\ date et heure (donc en plus, pour simplifier la chose, le nom du répertoire source change tout le temps :joy:)
22

En ce qui concerne le répertoire de destination, je prévois dans un premier temps d’utiliser mon jeedom qui bénéficie de +200Go de libre. Il faudra juste que je trouve un moyen de faire du ménage de temps à autre.

Comme je te disais, ma première intention, était d’utiliser ftp. Ça me semblait le protocole le plus adapté. Malheureusement, pas de plugin pour ça. Enfin si, ya bien Data Transfer, mais qui ne fait que des transfert de jeedom vers un autre serveur ftp et non l’inverse.

Voili voilou…:blush:

PS : j’ai testé ta commande avec sudo, mais cette commande n’est pas reconnue. C’est là où j’ai des doutes, car la carte est faite pour hacker la caméra, mais je ne suis pas sûr que tous les outils linux soient installés.
Pour rappel, la commande ssh root@192.168.0.10 /home/base/tools/reboot fonctionne si je la passe par mon pc
25
Mais bon, on va dire que le pb est bien lié au MDP.

Bonsoir,
ok, donc voici la procédure :

  • récupère l’adresse ip de ton jeedom
  • connecte-toi dessus en ssh comme tu le fais sur ta caméra
  • créé le dossier qui doit recevoir les fichiers (mkdir [nomdudossier])
  • donne l’accès à ce dossier en lecture/écriture à tous (chmod a+rw [nomdudossier]
  • quitte ta session ssh
  • connecte-toi en ssh à ta caméra, et créé le dossier de montage de ton dossier jeedom (mkdir /home/yi-hack-v4/jeedom)
  • donne l’accès à ce dossier en lecture/écriture à tous (chmod a+rw /home/yi-hack-v4/jeedom)
  • dans le plugin ssh-commander, créé un équipement caméra avec tous les renseignements nécessaire (adresse ip, utilisateur, mot de passe …)
  • dans ton équipement caméra, créé une commande action de montage du dossier que tu viens de créer sur jeedom (mount -t nfs [adresse_ip_jeedom]:[chemin_complet_du_dossier_créé] /home/yi-hack-v4/jeedom)
  • crée une autre commande de démontage du dossier (umount /home/yi-hack-v4/jeedom)
  • crée une commande de copie des fichiers (cp -r -f /tmp/sd/record /home/yi-hack-v4/jeedom)

Ensuite, il ne te reste qu’à faire un scenario qui appelle tes commandes :

  • montage
  • pause (si tu n’est pas pressé, tu peux utiliser la fonction « Dans » et mettre 1min)
  • commande de copie dans le bloc « Dans »
  • toujours dans le même bloc, un autre bloc « Dans » plus long (à adapter en fonction du temps estimé de copie, avec une bonne marge si tu n’est pas pressé) dans lequel tu mets ta commande de démontage.

Autre possibilité de scenario si tu ne gères les reboot que par jeedom : tu fais un scenario avec :

  • la commande reboot
  • un bloc « Dans » 5 min avec à l’intérieur la commande de montage de ton dossier jeedom

Dernière chose : si la commande reboot fonctionne sans sudo, tant mieux dans ce cas tu peux t’en passer. Effectivement cette fonction n’est pas systématiquement installée, et tu ne devrais pas en avoir besoin

:astonished:
ça c’est de la procédure personnalisée :heart_eyes:
Je vais tester tout ça et je te tiens au courant.

Encore merci merci merci !!! :grinning:

Bonjour sylvouille,

alors, voici un premier retour

Jusque là, tout est ok. J’ai créé la commande reboot également qui fonctionne correctement. :grin:

Là, par contre, ça commence à merder. Quand je lance la commande mount, j’ai ce message:

*Ne fais pas gaffe à l’ad ip, 10 c’est bien jeedom. Ma caméra c’est 85

J’ai donc essayé directement en ssh sur la caméra, et sur jeedom en créant un répertoire à la racine au cas où. mais j’ai le même message.

Ca tombe bien, car ça veut dire que ça ne vient pas du plugin :wink:

Si j’ai bien compris la manip, le mount créé comme un dossier virtuel dans le répertoire « jeedom » que j’ai créé sur la caméra. Et ce répertoire virtuel pointe sur le répertoire réel « vidéoscam » que j’ai créé sur mon serveur jeedom. C’est bien ça ? Mais du coup, il n’est pas nécessaire de « partager » ce répertoire comme on doit le faire sur windows ?

2e chose, j’en ai profité pour tester la commande cp (directement sur la cam) qui fonctionne bien, mais que pour les premiers 3,5Mo. Et ensuite, j’ai une erreur de place disque. … bizarre car il me reste 9Go sur ma carte sd. :interrobang:

Et là je me suis dit : mais oui bien sûr :bulb:, le répertoire que j’ai créé « jeedom » doit se trouver sur la mémoire interne de la caméra. Et le \tmp\sd doit être un « montage virtuel » sur la carte sd …
Et cqomme le mount n’a pas fonctionné, la copie ne part pas vers mon serveur, mais reste en local. ais-je bien analysé le pb ?

Autre sujet, en admettant que tout fonctionnera comme souhaité (quand le mount sera ok). Si je fais comme tu me dis, c’est la caméra qui se chargera de lancer la copie vers mon serveur.
Ne serait-ce pas judicieux de faire faire le travail par mon jeedom ? Faire un pull au lieu d’un push. Ça n’a peut-être aucun intérêt, mais je me dis que mon serveur étant beaucoup plus puissant que ma cam, ce sera moins douloureux pour elle. Qu’en penses-tu. Et est faisable ?

Merci et bonne journée

Bonjour,
dans l’ordre :

  • impeccable si le reboot fonctionne
  • il y a peut-être un problème de localisation du dossier videoscam sur ton jeedom. Connais-tu son chemin absolu (=le chemin complet qui permet de le localiser dans l’arborescence) ? Si c’est le cas, peux-tu nous donner son chemin ? Sinon, tu peux te re-connecter à Jeedom en SSH, te mettre dans le dossier dans lequel tu as créer videoscam (si tu l’as créé directement après t’être connecté en ssh, sans changer de dossier, en te re-connectant en ssh tu devrais être au bon endroit), et utiliser la commande pwd. C’est ce chemin absolu qu’il faut utiliser pour le montage : mount -t nfs [adresse_ip_jeedom]:[chemin_absolu] /home/yi-hack-v4/jeedom
  • Oui, tu as tout compris, quand le montage ne se fait pas, la copie reste en local sur ta camera
  • Disons que c’est jeedom qui demande à ta caméra de faire la copie, donc l’initiative est quand même à jeedom. Faire l’inverse doit être possible, par un script jeedom cette fois : le script monte ton dossier jeedom de la caméra sur un dossier caméra de jeedom, puis lance la copie … A voir !

Le chemin absolu du répertoire est bien /videoscam


J’avais d’abord essayé sur /var/www/html/videos pour être sûr de pouvoir y accéder depuis jeedom, mais le pb est le même.

Alors c’est au niveau du paramétrage nfs qu’il manque quelque-chose. Pourrais-tu ouvrir en ssh le fichier /etc/exports de ta caméra (nano /etc/exports), et y ajouter la ligne suivante :
/tmp/sd/record/ ip_de_jeedom
Ensuite tu redémarres le service nfs (/etc/init.d/nfs-kernel-server restart) et tu retentes le montage

pas de /etc/exports :expressionless:

D’ailleurs, pas de nano non plus :wink: A priori que Vi

ok, et si tu testes /etc/init.d/nfs-kernel-server restart, ou /etc/init.d/nfs-kernel-server start, qu’est-ce qu’il te mets ?

Not found … En même temps, vu le peu de chose qu’il y a dans init.d
1

J’ai loupé quelque chose ou pas ?
Tu lui demande de monter un partage NFS, mais à quel moment tu fais le partage ?

Je ne suis pas sur que la camera gère le NFS …
Ce sont des systèmes embarqués, en général avec le moins de protocoles possible.

Si il y a du FTP sur la camera, je partirai plus la dessus.
Les montages c’est souvent hasardeux… il faut être sur qu’ils se remontent bien en cas de coupure…

Si la caméra à un serveur FTP.
Je ferai un petit script qui va lister les dossier distant et les copier en local.

Ok, donc le linux qui est sur ta caméra est vraiment minimaliste, tu n’as même pas de nfs dessus … Donc effectivement, il vaut sans doute mieux partir sur du ftp comme le dit @bartounet. Là je passe la main parce que c’est un protocole que je n’utilise jamais …

Effectivement, visiblement pas de gestion du NFS. Perso je n’utilise jamais le ftp, tu pourrais donner un exemple de script pour passer les commandes dont tu parles ?

Ok, je comprends.
Ce n’est pas grave, j’ai quand même appris pas mal de choses grâce à toi.
Merci pour ça et pour tout le reste.

PS : Lunarok devrait te verser une prime vu l’excellente pub que tu fais pour son plugin :grinning:

Oui, la camera fait serveur ftp.
serais-tu prêt à m’aider à faire le script ?