Crontab Job / Permission Denied / Linux 16.04

matmat8888 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
Bonjour,

voilà j'essaie de faire marcher un crontab job et j'ai l'erreur suivant qui s'affiche que je ne sais pas comment régler :

/home/ubuntu/sss/: execle: Permission denied

Mon fichier crontab est comme ceci :

# variables
MAILTO=""
SHELL=/home/ubuntu/sss/
PATH=/home/ubuntu/sss/

# commands
55 07 * * * root my_command

J'édite mon crontab avec sudo crontab -e. Lorsque je lance ma commande my_command dans le shell dans le répertoire /home/ubuntu/sss/ elle marche parfaitement.

Si quelqu'un a une idée c'est top ! Merci d'avance.

Mathieu

2 réponses

  1. Utilisateur anonyme
     
    salut,

    avec crontab, il ne faut pas renseigner le nom d'utilisateur.

    et, le nom d'un répertoire n'est pas un shell valide !
    0
    1. matmat8888 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention  
       
      Merci pour ta réponse, et comment renseigner un shell valide dans ce cas tu sais ?

      Ok j'ai enlevé le nom d'utilisateur avant la commande et j'ai la même erreur...

      Mathieu
      0
    2. Utilisateur anonyme > matmat8888 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention  
       
      pourquoi cherches-tu à renseigner ces variables ?
      je n'ai jamais eu à le faire.
      d'autant qu'un
      PATH
      aussi restreint élimine tous les exécutables qui seraient sous
      /usr/bin
      , dont le chemin absolu ne serait pas donné lors de leur appel...

      c'est quoi
      my_command
      ? un script shell, perl, python ? un exécutable ?
      0
    3. matmat8888 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention   > Utilisateur anonyme
       
      Bonjour ! Au fait c'est le path vers mon bundle, si je ne précise pas j'ai cette erreur :

      /usr/bin/env: ‘ruby_executable_hooks’: No such file or directory

      Mon fichier crontab est le suivant :

      # variables
      # MAILTO=""
      SHELL=/home/ubuntu/sss/

      # commands
      13 08 * * * RAILS_ENV=production /home/ubuntu/.rvm/gems/ruby-2.3.4/bin/bundle exec rails runner "CommunityMailer.deliver_community_updates"

      Et j'ai toujours cette erreur :

      /home/ubuntu/sss/: execle: Permission denied

      Est ce que tu as une idée du coup ? Merci ! :)
      0
    4. matmat8888 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention   > Utilisateur anonyme
       
      ps : avec ce crontab :

      # variables
      # MAILTO=""
      # SHELL=/home/ubuntu/sss/

      # commands
      13 08 * * * RAILS_ENV=production bundle exec rails runner "CommunityMailer.deliver_community_updates"

      j'ai l'erreur suivante :

      /bin/sh: 1: bundle: not found
      0
    5. Utilisateur anonyme
       
      quand on débute, il faut ne changer qu'un seul élément à la fois.

      restaure le chemin absolu vers ton
      bundle
      .
      0
  2. matmat8888 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention  
     
    Bonjour,

    un peu plus de précisions sur mon erreur, mon crontab est le suivant :

    SHELL=/home/ubuntu/sss/

    55 08 * * * RAILS_ENV=production bundle exec rails runner "CommunityMailer.deliver_community_updates"

    et toujours la même erreur :

    /home/ubuntu/sss/: execle: Permission denied

    Quelqu'un a une idée ? Merci !
    0
    1. Utilisateur anonyme
       
      comment tu fais pour, systématiquement, passer à côté de la solution ?

      la crontab doit contenir ceci :
      13 08 * * * RAILS_ENV=production /home/ubuntu/.rvm/gems/ruby-2.3.4/bin/bundle exec rails runner "CommunityMailer.deliver_community_updates" 

      c'est tout ! a priori.

      je ne connais pas
      ruby
      , donc je ne sais pas à quoi correspond
      rails
      et
      runner
      .
      c'est des fichiers ? des commandes ?...

      et pourquoi as-tu installé
      ruby
      depuis les sources (apparemment, puisque son exécutable est dans ton répertoire personnel), plutôt que d'utiliser la version, probablement plus à jour (sur ARchLinux, c'est la 2.4.2) de ta distribution (laquelle ?) ?
      0
      1. matmat8888 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention   > Utilisateur anonyme
         
        Bonjour,

        humm bah pour le moment je n'ai pas trouvé de solution tout simplement !

        Merci pour ta réponse, avec ce crontab :

        13 08 * * * RAILS_ENV=production /home/ubuntu/.rvm/gems/ruby-2.3.4/bin/bundle exec rails runner "CommunityMailer.deliver_community_updates" 


        j'ai cette erreur :

        /usr/bin/env: ‘ruby_executable_hooks’: No such file or directory


        Est-ce que tu as une idée ?

        Ce qui marche dans mon shell :

        cd /home/ubuntu/sss/
        RAILS_ENV=production bundle exec rails runner "CommunityMailer.deliver_community_updates"


        Oui rails runner est une commande et sinon pour ruby il me faut la 2.3.4 c'est pourquoi je l'ai installé depuis une source.

        Merci !
        0
      2. Utilisateur anonyme > matmat8888 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention  
         
        tu as fait un script ?
        il contient un shebang ?
        il est exécutable ?

        tu inscris le nom du script, et son chemin absolu dans la crontab, à la place de la commande ruby.
        0
      3. matmat8888 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention   > Utilisateur anonyme
         
        Bon j'ai trouvé il faut utiliser des wrappers voilà tout ! Essaie de te former un peu plus en crontab avant d'essayer d'aider même si c'est sympa d'avoir essayé ok ! Bonne journée.
        0
    2. Utilisateur anonyme
       
      mais je t'en prie, explique-moi donc ce que tu appelles des wrappers ?
      0