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 :

Script Python qui ne fonctionne pas avec cron


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Juillet 2020
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Juillet 2020
    Messages : 142
    Par défaut Script Python qui ne fonctionne pas avec cron
    Bonjour,

    J'ai créé un script python qui se lance très bien en manuelle mais dans le cron il me donne l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Traceback (most recent call last):
      File "/data1/orli/prod/BVT/sql/sql/test_script.py", line 28, in <module>
        sqlplus_output = run_sqlplus(sqlplus_script)
      File "/data1/orli/prod/BVT/sql/sql/test_script.py", line 16, in run_sqlplus
        stdout=subprocess.PIPE,stderr=subprocess.PIPE)
      File "/usr/lib64/python2.6/subprocess.py", line 642, in __init__
        errread, errwrite)
      File "/usr/lib64/python2.6/subprocess.py", line 1238, in _execute_child
        raise child_exception
    OSError: [Errno 2] No such file or directory
    Ce que j'ai mis dans cron est la ligne suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    * * * * * PATH=/bin:/usr/bin:/sbin:/usr/sbin  /usr/bin/python /data1/orli/prod/BVT/sql/sql/test_script.py>> ~/cron.log 2>&1
    Merci d'avance de votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 102
    Par défaut
    Citation Envoyé par azaouali Voir le message
    Bonjour,

    J'ai créé un script python qui se lance très bien en manuelle mais dans le cron il me donne l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Traceback (most recent call last):
      File "/data1/orli/prod/BVT/sql/sql/test_script.py", line 28, in <module>
        sqlplus_output = run_sqlplus(sqlplus_script)
      File "/data1/orli/prod/BVT/sql/sql/test_script.py", line 16, in run_sqlplus
        stdout=subprocess.PIPE,stderr=subprocess.PIPE)
      File "/usr/lib64/python2.6/subprocess.py", line 642, in __init__
        errread, errwrite)
      File "/usr/lib64/python2.6/subprocess.py", line 1238, in _execute_child
        raise child_exception
    OSError: [Errno 2] No such file or directory
    Je ne suis pas spécialiste de python, ni de sqlplus, donc merci de prendre avec des pincettes (voire avec de grosses pinces) ce que je dis ci-dessous...

    D'abord je trouve que c'est quand même sacrément dommage qu'il dise "No such file or directory", mais qu'il ne donne pas clairement le nom du fichier qu'il ne trouve pas !?!?

    Comme, à la ligne précédente, il parle de stdout et stderr et que la ligne de cron finit par "2>&1", ne pourrait-il pas s'agir du fichier de sortie utilisé ?

    Ce que j'ai mis dans cron est la ligne suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    * * * * * PATH=/bin:/usr/bin:/sbin:/usr/sbin /usr/bin/python /data1/orli/prod/BVT/sql/sql/test_script.py>> ~/cron.log 2>&1
    Merci d'avance de votre aide
    D'ailleurs, il me semble pour le moins étrange de mettre un "~" dans une ligne de cron.

    À qui penses-tu que ce "~" fasse référence ? (je rappelle que cron exécute ses commandes dans un environnement différent de l'utilisateur habituel)

    Afin d'éliminer définitivement ce qui est peut-être une fausse piste, pourrais-tu essayer de remplacer test_script.py>> ~/cron.log 2>&1 par test_script.py>> /tmp/cron.log 2>&1 et nous indiquer ce que ça donne ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Juillet 2020
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Juillet 2020
    Messages : 142
    Par défaut
    Bonjour,

    Merci également de ta réponse mais je vais te décevoir c'est le même message:
    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
    Traceback (most recent call last):
      File "/data1/orli/prod/BVT/sql/sql/test_script.py", line 31, in <module>
        sqlplus_output = run_sqlplus(sqlplus_script)
      File "/data1/orli/prod/BVT/sql/sql/test_script.py", line 19, in run_sqlplus
        stdout=subprocess.PIPE,stderr=subprocess.PIPE)
      File "/usr/lib64/python2.6/subprocess.py", line 642, in __init__
        errread, errwrite)
      File "/usr/lib64/python2.6/subprocess.py", line 1238, in _execute_child
        raise child_exception
    OSError: [Errno 2] No such file or directory
    Traceback (most recent call last):
      File "/data1/orli/prod/BVT/sql/sql/test_script.py", line 31, in <module>
        sqlplus_output = run_sqlplus(sqlplus_script)
      File "/data1/orli/prod/BVT/sql/sql/test_script.py", line 19, in run_sqlplus
        stdout=subprocess.PIPE,stderr=subprocess.PIPE)
      File "/usr/lib64/python2.6/subprocess.py", line 642, in __init__
        errread, errwrite)
      File "/usr/lib64/python2.6/subprocess.py", line 1238, in _execute_child
        raise child_exception
    OSError: [Errno 2] No such file or directory

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 119
    Billets dans le blog
    148
    Par défaut
    Bonjour,

    Problème avec un fichier ouvert par le script. Possiblement un problème de chemin (utilisation d'un chemin relatif) ou problème de droit. Petit rappel : cron va exécuter avec des droits particuliers (pas nécessairement l'utilisateur habituel) et avec un répertoire courant autre que celui que l'on peut imaginer.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Membre confirmé
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Juillet 2020
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Juillet 2020
    Messages : 142
    Par défaut
    Bonjour,

    Merci pour la réponse je vais essayé de suite.

  6. #6
    Membre confirmé
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Juillet 2020
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Juillet 2020
    Messages : 142
    Par défaut
    Re,

    j'ai appliquer ce que tu as dit mais rien n'y fait j'ai toujours le même problème, j'ai chmod +x le script et je n'ai mis que des chemins absolue.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     File "/data1/orli/prod/BVT/sql/sql/test_script.py", line 31, in <module>
        sqlplus_output = run_sqlplus(sqlplus_script)
      File "/data1/orli/prod/BVT/sql/sql/test_script.py", line 19, in run_sqlplus
        stdout=subprocess.PIPE,stderr=subprocess.PIPE)
      File "/usr/lib64/python2.6/subprocess.py", line 642, in __init__
        errread, errwrite)
      File "/usr/lib64/python2.6/subprocess.py", line 1238, in _execute_child
        raise child_exception
    OSError: [Errno 2] No such file or directory

  7. #7
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 119
    Billets dans le blog
    148
    Par défaut
    Regardez dans vos scripts, notamment ici :
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    File "/data1/orli/prod/BVT/sql/sql/test_script.py", line 31, in <module>
        sqlplus_output = run_sqlplus(sqlplus_script)

    Le chmod +x, je ne pense pas. Je pense plus que c'est un problème de user/groupe (cron utilise un autre utilisateur que votre compte habituel). En plus, je vois un /data1 possiblement un dossier partagé provenant du réseau, n'acceptant possible que les accès par vous, comme utilisateur.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  8. #8
    Membre confirmé
    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Juillet 2020
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Juillet 2020
    Messages : 142
    Par défaut
    Oui, je vois mais le script est dans la machine qui possède ce chemin et donc pour toi je dois utilisé cette commande chown ?

Discussions similaires

  1. Script ajax qui ne fonctionne pas avec une écran smartphone
    Par beegees dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 17/08/2016, 12h27
  2. Script SVG qui ne fonctionne pas avec FF uniquement
    Par bronon dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/02/2015, 23h16
  3. Script fonctionne pas avec cron
    Par Nelmo dans le forum Administration système
    Réponses: 11
    Dernier message: 09/07/2012, 17h01
  4. fichier shell qui ne fonctionne pas avec le cron mais fonctionne dans le shell
    Par diabli73 dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 20/10/2008, 19h12
  5. Script JSP qui ne fonctionne pas sur n'importe quel poste
    Par vannary dans le forum Servlets/JSP
    Réponses: 15
    Dernier message: 18/12/2006, 11h56

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