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 :

Encore un fichier SH qui fonctionne en manuel mais pas en crontab


Sujet :

Shell et commandes GNU

Vue hybride

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Par défaut Encore un fichier SH qui fonctionne en manuel mais pas en crontab
    Bonjour, je me tourne vers vous au sujet d'un script qui ne fonctionne pas en étant dans un crontab, mais qui tourne lorsque je l'exécute manuellement.
    J'ai bien vu plusieurs messages du même ordre, mais rien n'ayant solutionné mon problème, peut-être aurez-vous une idée ?

    Le script station.sh exécute un fichier station.php, qui dépose sur un serveur des fichiers .txt

    Voici le fichier station.php :
    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
    <?php
    $ftp_server = "adresseduserveur";
    $ftp_user_name = "identifiant";
    $ftp_user_pass = "motdepasse";
    $ftp = ftp_connect($ftp_server);
     
    $login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);
     
    $tab = array("801", "802", "803", "804", "805", "806", "807", "808", "809", "810");
    foreach ($tab as $station) {
    	$source_file = "/lampp/htdocs/www/db/".$station.".txt";
    	$destination_file = $station.".txt";
    	$upload = ftp_put($ftp, $destination_file, $source_file, FTP_ASCII); 
    }
     
    ftp_close($ftp);
    ?>
    Voici le fichier station.sh qui exécute cette action :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #!/bin/sh
     
    /lampp/bin/php -f /lampp/htdocs/www/db/station.php
    A ce stade, si je tape dans putty la commande d'exécution, tout fonctionne et les fichiers se déposent sur le serveur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sh /lampp/htdocs/www/db/station.sh
    Mais si je tente depuis le crontab, il ne se passe rien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    05 10 * * * /lampp/htdocs/www/db/station.sh
    Une idée ? Merci d'avance.

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

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

    vu que tu le lances en console avec sh, peut-être as-tu oublié de rendre script shell exécutable
    ...
    ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Par défaut
    Au niveau des droits sur le serveur ?
    Il est en permission 700 pourtant. J'ai tenté en 777 également.
    J'en ai d'autres qui fonctionnent au même endroit, avec les mêmes droits.

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 644
    Par défaut
    as-tu essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    05 10 * * * /lampp/bin/php -f /lampp/htdocs/www/db/station.php
    ?
    d'ailleurs, si il n'y a que ça dans le script, alors il est inutile.

    quel est l'intérêt de passer par php pour faire du ftp ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    as-tu essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    05 10 * * * /lampp/bin/php -f /lampp/htdocs/www/db/station.php
    ?
    Je viens d'essayer, et de cette façon cela fonctionne ! Merci.
    C'est donc mon fichier station.sh qui pose problème ?
    Je ne connais pas grand chose à Linux, je ne savais pas qu'on pouvait exécuter un PHP directement de cette façon

    Citation Envoyé par N_BaH Voir le message
    quel est l'intérêt de passer par php pour faire du ftp ?
    Mon script PHP récupère des fichiers qu'il renomme en fonction de certains critères, pour les uploader ensuite ailleurs sous un autre nom. C'est la seule façon que j'ai trouvé et compris pour y arriver. Il y a plus simple ?

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/09/2007, 12h15
  2. Eval qui fonctionne sur Firefox mais pas sur IE :D
    Par Comawhite dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 30/10/2006, 11h31
  3. [2.0] connexion qui fonctionne chez moi mais pas sur un autre pc
    Par Lorenzeb dans le forum Accès aux données
    Réponses: 1
    Dernier message: 13/09/2006, 17h47
  4. Fonction JS qui fonctionne avec Mozilla mais pas avec IE.
    Par etiennegaloup dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 31/10/2005, 13h58

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