IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Exécution de fonction à distance


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2013
    Messages : 2
    Par défaut Exécution de fonction à distance
    Bonjour à tous!

    je suis nouveau sur ce forum, j'ai regardé un peu partout mais personne n'a traité le sujet que je vais aborder.

    Voila je suis sur une distribution RHEL6, je réalise un script bash d'administration.
    Ce script me permet de faire des traitements d'états locaux du système (Heartbeat DRBD etc...)

    Ce script est répliqué via RSYNC sur différents serveurs.

    je cherche à exécuter depuis mon script d'administration via ssh des fonctions particulières d'un script. Je ne veux pas lancer tous le script, seulement une fonction. Je suis parti sur une démarche comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function conec # test de connexion
    {
    var=/home/repli/Script_jo/testdist.sh
    if [ "$1" == "fonction" ]
    then
    $2
    exit
    fi
     
    ssh repli@xxxxx -i /home/repli/.ssh/id_rsa_repli $var fonction EDRDB_LOC_v
    }
    EDRDB_LOC_v est la fonction que je veux exécuter dans le script distant.

    Je n'ai pas trouvé d'autre solution, et celle-ci ne marche pas. Exécuter le script n'est pas intéressant pour moi je le répète ^^

    Si quelqu'un sait comment exécuter une fonction sur un serveur distant cela me sauverait la vie!

    Merci à tous

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 658
    Par défaut
    Bonjour,

    Je ne veux pas lancer tous le sript, seulement une fonction.
    un script qui contient des fonctions doit obligatoirement être lu, et exécuté dans sa totalité, pour que ces fonctions soit aussi exécutables.
    il doit même être exécuté dans l'environnement courant pour que ses fonctions y soient accessibles; il faut donc le sourcer.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par gini974 Voir le message
    Si quelqu'un sait comment exécuter une fonction sur un serveur distant cela me sauverait la vie!
    Salut

    On me nomme le sauveur de vies...
    Code sh : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #!/bin/sh
     
    cat <<_EOT_ |ssh serveur_distant "cat >/tmp/fct.sh && chmod a+x /tmp/fct.sh && /tmp/fct.sh"
    #!/bin/sh
    echo "salut"
    date
    _EOT_
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 102
    Par défaut
    Bonjour,
    il y a quelque temps, nous avons été confrontés à un problème similaire:
    • Un script (mis au point par une autre équipe) est imposé.
    • Nous devons utiliser les fonctions de ce script.
    • Nous n'avons pas le droit de modifier ce script.
    • Si nous demandons des modifications à l'autre équipe, peu de chances d'être entendus...
    • Sourcer l'intégralité du script pose des problèmes car le script contient des fonctions, mais fait aussi des choses dans le "main" (la partie qui ne définit pas les fonctions).
    • De plus, la dépendance entre les fonctions rend difficile l'extraction d'une seule fonction.

    Voici ce que nous avons fait:
    • un petit coup de sed pour supprimer le "main", c'est-à-dire copier vers un fichier temporaire les lignes entre le début du fichier et la bannière du "main" (merci d'en avoir mis une!),
    • sourcer ce fichier temporaire
    • et exécuter les fonctions du script dans l'ordre et avec les arguments qui nous conviennent.

  5. #5
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2013
    Messages : 2
    Par défaut Merci
    Merci pour vos réponse. Les solutions proposé n'ont pas marché

    Mais j'ai trouvé m'a réponse en faite il suffisait de mettre ma condition IF à la fin du script pour qu'il soit prit en compte seulement après lecture des autres fonction.
    Il faut également faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ssh $USER@$i -i $KEYPRIV " sudo script.sh fonction TEST "
    Merci tout de même pour vos réponse!

    bonne journée

Discussions similaires

  1. [Débutant] exécuter une fonction à un programme à distance
    Par Speed41 dans le forum C#
    Réponses: 1
    Dernier message: 03/09/2014, 01h16
  2. [Débutant]Comment exécuter une fonction tous les jours
    Par pseudomh dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 21/06/2006, 16h10
  3. exécution de fonction
    Par MANU_2 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 19/09/2005, 16h50
  4. Est-il possible d'exécuter une fonction à partir de fichier
    Par magic8392 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 16/09/2005, 13h59
  5. [VB.NET] Exécuter une fonction VB sur un Datagrid
    Par MiJack dans le forum Windows Forms
    Réponses: 3
    Dernier message: 24/09/2004, 14h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo