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

Bibliothèques et frameworks PHP Discussion :

[SSH2] Problème au nvieau de ssh2_exec()


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 22
    Points : 10
    Points
    10
    Par défaut [SSH2] Problème au nvieau de ssh2_exec()
    Bonjour à tous,

    Je me suis lancé depuis peu a la création d'un GamePannel pour une utilisation personnelle. Je me suis renseigné où je pouvais pour savoir quel était le language le plus adapté, et tout ma orienté vers la lib php SSH2.

    Le problème est donc le suivant, dans mon script je compte donc rebooté, lancer ou simplement stoppé un serveur de jeux sur un de mes serveurs dédié.
    Je me connecte donc avec SSH (aucun souci de se coté là) mais celui-ci ne veut pas faire les commandes voulues. J'ai donc tester des commandes simple (pour savoir si ca ne planté pas niveau serveur) donc j'ai tester un simple mkdir et ca ma bien crée le dossier.

    Avant d'exposé ma fonction je me pose une question:
    Vaut il mieu gerer tout ca avec des shell ou bien lancé les commandes via SSH ? Pour ma part j'essaye via SSH directement mais apparement ce n'est pas concluant.

    Bon voici mes fonction qui bug ,sans aucun message d'erreurs et qui m'affiche bien "Serveur Stop" en sortie:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    function commande($action, $id_commande, $slot, $boot_map, $port, $server) {
    	$action= intval($action);
    	//on execute nos commandes, on peut exécuter plusieurs  commandes en les séparant par des ; 
    	$ip_serv = '91.***.126.10'; 
    	$user_serv = '*****'; 
    	$pass_serv = '************';
     
            $connect= ssh2_connect($ip_serv, 22);
            $auth= ssh2_auth_password($connect, $user_serv, $pass_serv);	
            if($auth) {	
            $stream= ssh2_exec($connect, 'screen -r serveur_war');
    	    if($stream != FALSE) {
    	    $stream= ssh2_exec($connect, 'quit');
    	    echo'serveur STOP';
    	    }
    	    else {
    	    echo'Erreur de commande';
    	    }	
               }
               else {
               echo'Mauvais User';
               }		
    }
    Voici une des partie de la fonction où l'action stoppé est effectué. J'avais aussi pensé à une éventualité qui est la suivante: "Le problème ne pourrait-il pas parvenir que j'essaye d'injecté une commande dans le screen mais que je n'utilise pas la bonne méthode?".

    Ne me jugé pas sur ce premier bout d'essaie avec SSH, car cette fonction est pas du tout le résultat final et les echo ne sont là que pour mes tests, et je compte bien optimisé le tout quand j'aurai réussi à arreté ce serveur

    Je vous remercie d'avance pour votre aide.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Points : 2 284
    Points
    2 284
    Par défaut
    Saut,

    Après ton ssh2_exec pour lancer le service et avant le quit, fait un

    stream_set_blocking($connect, true);
    $output = stream_get_contents($connect);

    Pour récupérer le résultat de la commande!

    a plus

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Je vien de rajouté ces 2 lignes et voicis le message d'erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PHP Warning:  stream_get_contents(): supplied resource is not a valid stream resource in C:\wamp\www\gggg\taches\game\function.php on line 83

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Points : 2 284
    Points
    2 284
    Par défaut
    Ouaip, essais plutôt avec $stream.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Oui avec stream ca marche mieu déjà

    Mais bon voici ce qui est afficher (je pense que c'est parce que je touche au screen):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Must be connected to a terminal.
    Merci encore de m'aider kaymak

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Points : 2 284
    Points
    2 284
    Par défaut
    OK.
    Pourquoi tu passes par screen ?
    Perso je connais pas.
    Tu n'as pas un service plutôt ?

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    En faite je passe par screen , du moin j'ai essayé pour pouvoir faire d'autre action plus complexe par la suite.

    Sinon qu'appelle tu par service? Si c'est l'application qui apparait dans la liste des process oui j'en est un.

    Je pense que tu voudrais que je fasse du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /blabla/serveur_machin stop
    Non?

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Points : 2 284
    Points
    2 284
    Par défaut
    ouaip, et c'est service monservie stop|start|restart|reload
    ou /etc/init.d/monservice start...

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Je cherche depuis hier soir si un service existe pour les serveurs, mais apparement j'en trouve pas (où j'arrive pas a le trouver).

    Y a t'il une commande pour trouver les services en marche?

  10. #10
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Points : 2 284
    Points
    2 284
    Par défaut
    Sa dépend de ta release :s
    Donnes voir, se sera plus simple.

    Et puis si sa se trouve ton serveur de jeux n'à pas installé de service, mais j'y croit pas torp car dans ce cas là se serait abusé.

    M'enfin, il faudra passer par leur doc.

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Donc notre serveur est sous Fetch.

    On utilise donc hlds pour nos serveur de jeux. (4 au total) tous installé séparement (dossier different).

    Si il faut d'autre info je peut me renseigné car bon au niveau de la distrib c'est pas mon dada disont

  12. #12
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Points : 2 284
    Points
    2 284
    Par défaut
    Ce n'est pas plutot Debian Etch ?

    Je n'en ai jamais administré, mais bon d'après ce que j'ai pu lire en faisant un
    on devrait pouvoir retrouver les scripts de demarrage.

    Donc poste le resultat de
    voir ce que cela donne.

    En esperant que j'ai bon et que c'est bien installer on devrait trouver un fichier hlds. On utilisera se script pour redemarrer tes serveurs.

    a plus

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Hum j'ai fait ce que tu m'a dit mais aucune trace de HLDS ...

    Voici la liste de ce qui m'est afficher:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    total 252
    drwxr-xr-x  2 root root 4096 2008-03-21 22:32 .
    drwxr-xr-x 56 root root 4096 2008-05-05 08:13 ..
    -rwxr-xr-x  1 root root 1063 2006-09-25 02:30 bind
    -rwxr-xr-x  1 root root 5089 2006-09-20 13:33 bootclean
    -rwxr-xr-x  1 root root 2146 2006-09-12 23:30 bootlogd
    -rwxr-xr-x  1 root root 1915 2006-09-20 13:27 bootmisc.sh
    -rwxr-xr-x  1 root root 2930 2006-09-14 10:20 checkfs.sh
    -rwxr-xr-x  1 root root 9548 2006-09-23 09:34 checkroot.sh
    -rwxr-xr-x  1 root root 6110 2006-09-05 18:15 console-screen.sh
    -rwxr-xr-x  1 root root 1761 2006-10-12 20:55 cron
    -rwxr-xr-x  1 root root 5823 2007-02-21 16:13 glibc.sh
    -rwxr-xr-x  1 root root 1360 2007-01-13 19:52 halt
    -rwxr-xr-x  1 root root 1287 2006-09-12 23:31 hostname.sh
    -rwxr-xr-x  1 root root 3886 2007-02-21 18:48 hwclock.sh
    -rwxr-xr-x  1 root root 2518 2006-09-15 20:03 ifupdown
    -rwxr-xr-x  1 root root 1046 2006-09-15 20:03 ifupdown-clean
    -rwxr-xr-x  1 root root 3484 2006-10-16 05:38 keymap.sh
    -rwxr-xr-x  1 root root  944 2006-09-12 23:31 killprocs
    -rwxr-xr-x  1 root root 1375 2006-05-25 11:38 klogd
    -rwxr-xr-x  1 root root  417 2006-08-09 00:38 libdevmapper1.02
    -rwxr-xr-x  1 root root 1054 2006-09-06 23:43 makedev
    -rwxr-xr-x  1 root root  617 2006-01-15 12:04 mountall-bootclean.sh
    -rwxr-xr-x  1 root root 1718 2006-09-12 23:30 mountall.sh
    -rwxr-xr-x  1 root root 2206 2006-10-03 20:22 mountdevsubfs.sh
    -rwxr-xr-x  1 root root 2394 2006-09-25 10:36 mountkernfs.sh
    -rwxr-xr-x  1 root root  615 2006-01-15 12:04 mountnfs-bootclean.sh
    -rwxr-xr-x  1 root root 2299 2006-11-26 14:35 mountnfs.sh
    -rwxr-xr-x  1 root root 3668 2006-11-26 16:13 mtab.sh
    -rwxr-xr-x  1 root root 2550 2007-01-06 16:36 networking
    -rwxr-xr-x  1 root root 2324 2007-02-25 21:29 openbsd-inetd
    -rwxr-xr-x  1 root root 2103 2008-03-14 18:13 open-iscsi
    -rwxr-xr-x  1 root root  997 2006-09-13 03:42 procps.sh
    -rwxr-xr-x  1 root root 4232 2007-01-02 11:00 proftpd
    -rwxr-xr-x  1 root root 8045 2006-11-27 23:23 rc
    -rwxr-xr-x  1 root root  798 2006-09-28 19:25 rc.local
    -rwxr-xr-x  1 root root  117 2005-12-02 18:44 rcS
    -rw-r--r--  1 root root 1386 2006-09-13 08:10 README
    -rwxr-xr-x  1 root root  655 2006-09-22 16:21 reboot
    -rwxr-xr-x  1 root root  994 2006-09-12 23:30 rmnologin
    -rwxr-xr-x  1 root root 4096 2006-11-20 16:06 rsync
    -rwxr-xr-x  1 root root  695 2007-03-07 00:06 screen-cleanup
    -rwxr-xr-x  1 root root 1376 2006-11-27 23:23 sendsigs
    -rwxr-xr-x  1 root root  585 2006-09-12 23:32 single
    -rw-r--r--  1 root root 4187 2006-09-12 23:32 skeleton
    -rwxr-xr-x  1 root root 1891 2007-03-05 17:38 ssh
    -rwxr-xr-x  1 root root  520 2006-09-12 23:26 stop-bootlogd
    -rwxr-xr-x  1 root root  730 2006-10-02 19:14 stop-bootlogd-single
    -rwxr-xr-x  1 root root 2037 2006-05-25 11:38 sysklogd
    -rwxr-xr-x  1 root root 8178 2006-12-19 11:21 udev
    -rwxr-xr-x  1 root root 1252 2006-03-28 09:44 udev-mtab
    -rwxr-xr-x  1 root root 3175 2006-11-25 10:22 umountfs
    -rwxr-xr-x  1 root root 2128 2006-11-26 19:23 umountnfs.sh
    -rwxr-xr-x  1 root root 1122 2006-09-30 16:37 umountroot
    -rwxr-xr-x  1 root root 1815 2006-09-12 23:30 urandom

  14. #14
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Points : 2 284
    Points
    2 284
    Par défaut
    ouaip effectivement, pi ce n'est pas du tout ce à quoi je m'attendais.

    Sinon tu connais la ligne de commande pour redémarrer tes servuces hlds ?

    Et puis pouvais poster le résultat de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    locate -u && locate hlds
    En esperant que locate est bien installé.

    a pluche

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Apparement ce n'est pas la bonne option

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    locate: option invalide -- u
    Usage: locate [-d chemin | --database=chemin] [-e | -E | --[non-]existing]
          [-i | --ignore-case] [-w | --wholename] [-b | --basename]
          [--limit=N | -l N] [-S | --statistics] [-0 | --null] [-c | --count]
          [-P | -H | --nofollow] [-L | --follow] [-m | --mmap ] [ -s | --stdio ]
          [-A | --all] [-p | --print] [-r | --regex ] [--regextype=TYPE]
          [--version] [--help]
          modèle...
    Merci de ton aide en tout cas, ca fait plaisir

  16. #16
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Points : 2 284
    Points
    2 284
    Par défaut
    des barres

    Essais avec /usr/bin/updatedb -U / ou locate -U /

    J'avais déjà eu ce problème et j'avais trouvé une tache cron qui le faisait tous les jours normalement.

    bref fais tout de même le locate hlds

    Merci de ton aide en tout cas, ca fait plaisir
    De rien, mais pour le moment on patoge grave là ....

    a plus

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Apparement c'est le -U qu'il ne reconnait pas (avec les deux propositions que tu m'a mise au dessus)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    locate: option invalide -- U
    Et il me renvoi donc à la liste des options.

Discussions similaires

  1. [SSH2] Problème de passphrase avec ssh2_auth_pubkey_file
    Par OrOoX dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 22/11/2010, 20h02
  2. [SSH2] problème d'exécution avec la fonction ssh2_exec
    Par boriskov dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 07/08/2008, 17h18
  3. [SSH2] Problème de récupération de fichier via SCP
    Par guile1er dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 28/02/2008, 19h17
  4. [SSH2] Problème avec activation de php_ssh2.dll
    Par rochenico dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 19/09/2007, 15h42
  5. [SSH2] Problème avec ssh2_exec
    Par Roro49 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 05/04/2007, 12h24

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