Comment rediriger une commande vers une variable avec TCL

gabo -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
je souhaiterais écrire un script pour recuperer dans une variable une valeur contenu dans un serveur distant en me connectant via ssh .
avec un script bash , je peux le faire :
var=$(ssh nomduserveur@0.0.0.0 cd /home/user;ls -lrt |wc -l)

Mon probleme est que le script doit tourner seul toutes les 5minutes sans que j'ai a mettre le mot de passe moi même alors il me faut écrire le me script avec TCL afin d'utiliser l'outil expect.
Merci de m'aider a écrire ce script ci -dessus avec le language TCL .
voici ce que j'ai dejà tenté sans succès.
set var [send -- "ssh nomduserveur@0.0.0.0 \"cd /home/user/;ls -lrt|wc -l\"\r"]


3 réponses

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    Une solution "propre" pourrait consister à utiliser une clé ssh :
    http://prendreuncafe.com/blog/post/2005/08/29/262-installer-sa-cle-ssh-sur-un-serveur-distant

    Il faudra juste à lancer au début de ta simulation la commande
    ssh-add


    Bonne chance
    0
  2. gabo24 Messages postés 2 Statut Membre
     
    Bonjour!
    merci pour ta reponse . Cest vraiment une solution propre , mais il faut que j'y arrive sans utiliser une clé car ici l'administrateur refuse Totalement l'utilisation de clé ssh sur les machines en production! Je ne peux Rien modifier sur les machines en production ; je peux simplement me connecter et collecter des données .
    Si c'est faisable dans un script bash je me dit que ça doit pouvoir être possible avec Expect qui utilise le language TCL.
    merci.
    0
  3. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    En shell voici comment pourrais faire :
    https://stackoverflow.com/questions/16928004/how-to-enter-ssh-password-using-bash
    https://stackoverflow.com/questions/12202587/automatically-enter-ssh-password-with-script

    Dans l'idée il faut envoyer la commande, et quand "password" ou "Password" s'affiche envoyer le mot de passe. Je ne connais pas TCL assez pour te dire s'il y a des outils similaire.

    Quelqu'un ici semble avoir le même problème :
    http://www.wellho.net/forum/The-Tcl-programming-language/How-to-ssh-and-execute-a-particular-command.html

    Ici un début de solution (mais qui suppose que soit une clé est installée, soit le mode passe est désactivé) :
    https://wiki.tcl-lang.org/page/remote+ssh+tcl

    Après je ne sais pas trop comment t'aider à part chercher avec toi sur google...

    Bonne chance
    0