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

Langage PHP Discussion :

[PHP 7] Dirvish lancement exec ou autre


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 394
    Par défaut [PHP 7] Dirvish lancement exec ou autre
    Bonjour,
    J'ai des webservices qui sont utilisés pour des sauvegardes, mais depuis le passage à PHP7 (?) la sauvegarde ne fonctionne plus.

    Toutes les liaisons webservices fonctionnent.

    J'ai isolé le code qui pose problème en php7 mais ça peut venir d'un d'autre chose !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    //$outputShell=shell_exec('sudo cat /etc/passwd');
    exec('sudo /usr/sbin/dirvish --vault L106',$outputShell, $codeErreur);
    //exec('sudo cat /etc/passwd',$outputShell, $codeErreur);
        //
        if ($codeErreur == 0){
          var_dump ("ok",$outputShell,$codeErreur);
        }
        else{
          var_dump ("nook",$outputShell,$codeErreur);
        }
     
    ?>
    Ceci est en fait (une partie) appelé par les webservices ...

    Quand j'execute directement ce code via un navigateur j'ai cette erreur :
    dirvish error: branch /san/pcdsi/L106:default image 20190221154124 failed
    dirvish L106:default error (23) -- partial transfer
    expr: syntax error
    expr: non-integer argument
    dirvish error: branch /san/pcdsi/L106:default image 20190221154136 failed
    et log dirvish

    rsync_error: *** Execution cycle 0 *** rsync: change_dir "/mnt/pc-backup/L106/Users/" failed: No such file or directory (2) rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1668) [Receiver=3.1.2] rsync: [Receiver] write error: Broken pipe (32) *** Execution cycle 1 *** rsync: change_dir "/mnt/pc-backup/L106/Users/" failed: No such file or directory (2) rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1668) [Receiver=3.1.2] rsync: [Receiver] write error: Broken pipe (32)
    Si j’exécute la commande /usr/sbin/dirvish --vault L106 en root , la sauvegarde s'effectue sans problème !!

    De plus la partie en commentaire que j'ai testée via cat /etc/passwd fonctionne !

    Bien sûr j'ai vérifié les droits sudo et le script étant lancé via un navigateur www-data est sudo sans mot de passe ... pas de souci de ce coté là

    Sur mon ancien serveur PHP5 ce code php fonctionne !

    Est-ce que vous avez une idée ? Je cale ?
    - problème système ?
    - problème de php ?
    - problème de dirvish sur platefome php 7 ?

    En résumé la commande exec('sudo /usr/sbin/dirvish --vault L106',$outputShell, $codeErreur); fonctionne en php5 et pas en php7 !! Des connaisseurs ? Merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 394
    Par défaut
    Bonjour,
    en fait il semblerait que ça soit un problème debian ou php ?
    Le script est lancé sur Stretch alors qu'il fonctionnait sur jessie ( et php5) . Avant PHP5 et maintenant PHP7

    Je précise que le script lancé en root fonctionne !

    Si quelqu'un connait dirvish et a une petite idée pourquoi on perd les points de montage ...

    Merci

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 394
    Par défaut
    Bonjour,
    personne ne connait dirvish ?? Merci car je suis bloqué.

    La commande sudo dirvish fonctionne en ligne de commande mais pas avec la commande exec sudo dirvish ... mais par contre la commande exec sudo cat /etc/passwd fonctionne !!

    Merci

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 394
    Par défaut
    Bonjour,
    Pour tester le problème de dirvish il semble que ça soit un problème de montage via www-data en sudo je mets dans un fichier :
    Bien sûr :
    Le fichier sudo toto.sh fonctionne
    et
    www-data est autorisé dans le sudoers à ALL donc tous les process
    www-data ALL=(ALL) NOPASSWD: ALL

    toto.sh :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    machine="L1069"
    mount -t cifs //$ipaddr/c$ /mnt/pc-backup/$machine -o "vers=2.0,username=agent-back-ws,password=Bcth2,ro,iocharset=utf8
    ,noserverino"
    Dans le fichier go.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $outputShell=passthru('sudo cat /etc/passwd');
    $output=exec('sudo  /var/www/html/toto.sh 2>&1');
    var_dump ($output);
    var_dump ($outputShell);
    Quand je lance php go.php (en root) j'obtiens :
    <pre></pre>string(0) ""
    et le montage se fait
    et le contenu de /etc/passwd s'affiche

    _________________________________________
    Par contre via le navigateur je lance www/go.php donc en www-data : j'obtiens :
    string(0) ""
    pas de montage !!!!!!!!!!
    et le contenu de /etc/passwd s'affiche

    Une idée ? Pourquoi le mount ne marche pas c'est le problème semble-t-il du script dirvish avec php7 et dernière version Debian ...

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 394
    Par défaut
    hello,
    personne pour m'aider ? Merci

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 394
    Par défaut
    Citation Envoyé par falco- Voir le message
    hello,
    personne pour m'aider ?
    En résumé comment executer un mount dans un fichier php ? Debian 9 et php7
    Si vous avez une idée

    Merci

Discussions similaires

  1. Blockage du programme php lors du lancement de la commande exec
    Par alais dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 11/05/2012, 16h18
  2. Exec un autre script PHP
    Par renaud26 dans le forum Langage
    Réponses: 7
    Dernier message: 02/10/2011, 18h47
  3. [FTP] Copie de source PHP d'un serveur vers un autre
    Par Nyphel dans le forum Langage
    Réponses: 5
    Dernier message: 23/03/2008, 23h36
  4. Problème lors du lancement sur une autre machine
    Par poussinphp dans le forum Visual C++
    Réponses: 4
    Dernier message: 01/05/2007, 13h25
  5. Lancement d'un autre programme
    Par Osmani dans le forum Général Python
    Réponses: 5
    Dernier message: 22/11/2006, 15h19

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