Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/10/2008, à 15:59

n3o51

Projet script bash

Bonjour a tous ,voila j'ai une petit question.Je dispose d'une machine distante qui heberge un server TCE (True combat elite)
Dans celle ci j'ai creer un script start et stop Etadmin (Permet de gerer les servers de jeu)
Dans mon script sur mon PC j'aimerai pour me connecter en ssh et lancer ces deux script mais jusque la ca ne fonctionne pas voici les lignes de mon script:

#!/bin/sh
# Connection en SSH 
ssh user@ip_machine_distante
#  la principale fonction :) 
function ETADMIN {
SAV=$(zenity --list --checklist --width=400 --height=350 --title "=== Menu ETadmin ===" --text="Veuillez sélectionnez les informations demandés:" \
--column="Selection" --column="Categories" \
FALSE "Demarrer etadmin sur tout les servers" \
FALSE "Arretter etadmin sur tout les servers " )                  
} 

# On lance le script sur la machine et on creer un fichiers demarrage
#
echo "$ETADMIN" | grep "Demarrer etadmin sur tout les servers" >/dev/null
if [ "$?" = 0 ] ; then  
 ./start_all_etadmin > demarrage 
    if [ "${PIPESTATUS[0]}" != "0" ]; then
        zenity --error --title="Une erreur est survenue" --text="probleme au lancement du script "
    fi
fi

J'aimerais aussi savoir si quelqu'un peut m'expliquer comment recuper le fichiers demarrage créer et l'afficher sur mon pc via zenity ?

Dernière modification par n3o51 (Le 21/10/2008, à 16:00)


Welcome to the real world
________________________________

Hors ligne

#2 Le 21/10/2008, à 16:27

redisded

Re : Projet script bash

Salut n3o,

Pour ce qui est de récupérer le fichier de log, tu peut regarder du coté de scp qui permet de copier des fichiers entre 2 machines via ssh; une fois celui-ci rapatrié sur ta machine, tu n'a plus qu'a l'envoyer vers une fenetre zenity.

Pour le fait que ton script ne fonctionne pas, il faudrait nous en dire un peu plus comme par exemple résultat de bash -x.
Tu devra aussi sans doute fournir ton mot de passe pour te connecter à la machine distante, ce qui n'apparait pas dans ton script.

Hors ligne

#3 Le 21/10/2008, à 16:41

n3o51

Re : Projet script bash

Yo redisded bon j'ai pas de mot de passe c'est authentification par clé .Vissiblement quand je lance le script avec bash -x rien ne ce passe la fenetre zenity n'apparait pas par contre la connection au server ce fait


Welcome to the real world
________________________________

Hors ligne

#4 Le 21/10/2008, à 16:45

redisded

Re : Projet script bash

en fait je pense que zenity ne s'affiche pas car tu le lance une fois que tu es connécté sur ta machine distante.
Essai de mettre en premier la fenetre zenity pour la recup des infos, et ensuite seulement tu lance la connection en ssh.
Tu n'a meme pas besoin de rentrer ton mdp utilisateur sur la machine distante ?

Hors ligne

#5 Le 21/10/2008, à 16:53

n3o51

Re : Projet script bash

je rentre seulement le phassphrase


Welcome to the real world
________________________________

Hors ligne

#6 Le 21/10/2008, à 17:20

n3o51

Re : Projet script bash

+ zenity --list --checklist --width=400 --height=350 --title '=== Menu ETadmin ===' '--text=Veuillez sélectionnez les informations demandés:' --column=Selection --column=Categories FALSE 'Demarrer etadmin sur tout les servers' FALSE 'Arretter etadmin sur tout les servers '
Arretter etadmin sur tout les servers 
+ case $SAV in

LE SCRIPT :


#!/bin/bash
zenity --list --checklist --width=400 --height=350 --title "=== Menu ETadmin ===" --text="Veuillez sélectionnez les informations demandés:" \
--column="Selection" --column="Categories" \
FALSE "Demarrer etadmin sur tout les servers" \
FALSE "Arretter etadmin sur tout les servers "                 
 case $SAV in 

                   1)
                       ssh user@ip ./start_all_etadmin 
                   ;;
      
                   2)
                       ssh user@ip ./stop_all_etadmin 
                   ;;
                esac

Dernière modification par n3o51 (Le 21/10/2008, à 17:21)


Welcome to the real world
________________________________

Hors ligne

#7 Le 21/10/2008, à 18:51

redisded

Re : Projet script bash

Le case ne reconnait ni 1 ni 2 car ce qui est rempli dans la variable est par défaut le contenu de la premiere colonne donc dans ton cas : "Demarrer etadmin sur tout les servers" ou "Arretter etadmin sur tout les servers " . Dans l'exemple qui suit, jai rajouté une colonne qui sera invisible dans la fenetre zenity (--hide-column=2) dans laquelle il y aura soit 1 soit 2. De cette maniere, c'est bien un de ces deux nombres qui sera envoyé dans ta variable, et ton script devrait se poursuivre.

#!/bin/bash
zenity --list --checklist --width=400 --height=350 --title "=== Menu ETadmin ===" --text="Veuillez sélectionnez les informations demandés:" \
--column="Selection" --column="" --hide-column=2 --column="Categories" \
FALSE 1 "Demarrer etadmin sur tout les servers" \
FALSE 2 "Arretter etadmin sur tout les servers "                 
 case $SAV in 

                   1)
                       ssh user@ip ./start_all_etadmin 
                   ;;
      
                   2)
                       ssh user@ip ./stop_all_etadmin 
                   ;;
                esac

Hors ligne

#8 Le 21/10/2008, à 20:04

n3o51

Re : Projet script bash

Merci mais bon marche toujours pas j'ai fait deux script un stop un start et puis voila big_smile


Welcome to the real world
________________________________

Hors ligne