Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1573 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Probleme d'execution de script bash

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme d'execution de script bash

n°2078635
elerf
Posté le 27-05-2011 à 12:51:05  profilanswer
 

Bonjour,  
 
Voici le problème, j'ai deux centreon, l'un sur le serveur A, l'autre sur le B. Je souhaite redémarrer le service nagios du serveur B (distant) depuis une page php du serveur A (local).
 
Dans mon code php, à l'aide de la commande passthru je lance un script bash qui se connecte en ssh sur le serveur distant et lance un script présent sur le serveur distant . L'utilisateur que j'utilise pour la connexion ssh ne demande pas de mot de passe, j'ai utilisé une clé DSA pour l'authentification...
 
Code php :                            
     $cmd="/home/pse/test.sh";
     passthru($cmd, $return);
     echo $return;
 
Script sur le serveur local : (/home/pse/test.sh)  
     #!/bin/bash
 
     ssh -l pse 192.168.51.33 -p 54321 '/home/pse/tes.sh'
 
 
Script sur le serveur distant : (/home/pse/tes.sh)
 
     #!/bin/bash
 
     echo 'password'|sudo -S /etc/init.d/nagios restart
 
 
Après plusieurs essais, le serveur Nagios ne veut pas redémarrer sur le serveur distant.
La variable de retour $return me renvoie le code 255, apparemment php ne peut pas exécuter le script.
 
Je ne comprends pas d'où peut venir le problème. Je précise que lorsque je lance le script à la main sur le serveur A, celui s'exécute sans soucis, et le service nagios du serveur B rédemarre comme il le devrait.
 
Résultat du lancement de test.sh sur la machine A :
     ~$ ./test.sh
     [sudo] password for pse:
     Running configuration check...done.
     Stopping nagios: ..done.
     Starting nagios: done.
 
 
Merci de votre aide.
 
 
 

mood
Publicité
Posté le 27-05-2011 à 12:51:05  profilanswer
 

n°2078637
Elmoricq
Modérateur
Posté le 27-05-2011 à 13:14:04  profilanswer
 

Le code php est exécuté par le même utilisateur que lors de tes tests manuels ?

n°2078640
slywalker
Posté le 27-05-2011 à 13:28:10  profilanswer
 

Question bête : pourquoi tu ne déclares pas le Centreon B comme étant un collecteur du Centreon A ?
 
comme ça, par le menu "configuration / nagios" du Centreon A, tu pourras redémarrer le Nagios du Centreon B (en prenant soin de décocher la case qui permet de générer la config !)

n°2078651
elerf
Posté le 27-05-2011 à 14:10:04  profilanswer
 

@Elmoriq :  
L'utilisateur qui exécute le script est celui de centreon (www-data).
Je ne pense pas que le problème vienne de là, j'ai mis les droits à 777 pour le script qui est lancé par le php. Je sais que c'est pas top niveau sécurité, mais je suis ici en phase de test. Donc à priori, tous les utilisateurs doivent pouvoir lancer le script.  
 
 
@slywalker : Je veux que les deux centreon check leurs hôtes, si le maitre tombe, j'aurai quand même les graphes...

n°2078666
Elmoricq
Modérateur
Posté le 27-05-2011 à 14:28:19  profilanswer
 

elerf a écrit :

@Elmoriq :  
L'utilisateur qui exécute le script est celui de centreon (www-data).
Je ne pense pas que le problème vienne de là, j'ai mis les droits à 777 pour le script qui est lancé par le php. Je sais que c'est pas top niveau sécurité, mais je suis ici en phase de test. Donc à priori, tous les utilisateurs doivent pouvoir lancer le script.  


 
Tu as déclaré les clefs publiques SSH pour www-data ?

n°2078678
elerf
Posté le 27-05-2011 à 14:39:00  profilanswer
 

Je me connecte en ssh sur le serveur B avec l'utilisateur pse, est-ce que c'est nécessaire de déclarer les clefs publiques pour www-data ?
 

Citation :

Script sur le serveur local : (/home/pse/test.sh)  
     #!/bin/bash
 
     ssh -l pse 192.168.51.33 -p 54321 '/home/pse/tes.sh'


Message édité par elerf le 27-05-2011 à 14:39:40
n°2078679
elerf
Posté le 27-05-2011 à 14:41:21  profilanswer
 

J'ai plutôt l'impression que le script ne peut pas être exécuter en local. En gros que l'utilisateur www-data ne lance pas le script test.sh.
 
Edit : J'avais aussi essayé avec un code du genre :
          $connection = ssh2_connect('192.168.51.33', 54321);
          ssh2_auth_password($connection, 'login', 'password');
          ssh2_exec($connection, "echo 'password'|sudo -S /etc/init.d/nagios restart" );
 
Mais sans succès.


Message édité par elerf le 27-05-2011 à 14:46:43
n°2082570
elerf
Posté le 15-06-2011 à 14:29:52  profilanswer
 

Résolu, il fallait en effet déclarer les clé publiques pour l'utilisateur www-data...
 
Merci à vous.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Probleme d'execution de script bash

 

Sujets relatifs
Problème incompatibilité type Excel VBA (Help, Stagiaire en détresse!)Probleme firefox config proxy
Problème lightboxProblème de cookies et de quotes
Problème de requête MySQLProblème CSS : Alignement et/ou width
Script bash Nagios-Like 
Plus de sujets relatifs à : Probleme d'execution de script bash


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR