Crontab Job / Permission Denied / Linux 16.04

matmat8888 25 Messages postés lundi 22 mai 2017Date d'inscription 6 décembre 2017 Dernière intervention - 4 déc. 2017 à 18:05 - Dernière réponse : qqchquicommenceparQ 884 Messages postés dimanche 24 mai 2009Date d'inscription 10 décembre 2017 Dernière intervention
- 6 déc. 2017 à 13:43
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
Afficher la suite 
25Messages postés lundi 22 mai 2017Date d'inscription 6 décembre 2017 Dernière intervention

13 réponses

Répondre au sujet
qqchquicommenceparQ 884 Messages postés dimanche 24 mai 2009Date d'inscription 10 décembre 2017 Dernière intervention - 4 déc. 2017 à 18:33
0
Utile
6
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 !
qqchquicommenceparQ 884 Messages postés dimanche 24 mai 2009Date d'inscription 10 décembre 2017 Dernière intervention > matmat8888 25 Messages postés lundi 22 mai 2017Date d'inscription 6 décembre 2017 Dernière intervention - 4 déc. 2017 à 21:57
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 ?
matmat8888 25 Messages postés lundi 22 mai 2017Date d'inscription 6 décembre 2017 Dernière intervention > qqchquicommenceparQ 884 Messages postés dimanche 24 mai 2009Date d'inscription 10 décembre 2017 Dernière intervention - 5 déc. 2017 à 09:15
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 ! :)
matmat8888 25 Messages postés lundi 22 mai 2017Date d'inscription 6 décembre 2017 Dernière intervention > qqchquicommenceparQ 884 Messages postés dimanche 24 mai 2009Date d'inscription 10 décembre 2017 Dernière intervention - 5 déc. 2017 à 09:28
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
qqchquicommenceparQ 884 Messages postés dimanche 24 mai 2009Date d'inscription 10 décembre 2017 Dernière intervention - 5 déc. 2017 à 10:00
quand on débute, il faut ne changer qu'un seul élément à la fois.

restaure le chemin absolu vers ton
bundle
.
matmat8888 25 Messages postés lundi 22 mai 2017Date d'inscription 6 décembre 2017 Dernière intervention > qqchquicommenceparQ 884 Messages postés dimanche 24 mai 2009Date d'inscription 10 décembre 2017 Dernière intervention - 5 déc. 2017 à 10:06
C'est fait ! J'ai donc mon crontab comme ceci :

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

Tu as une idée du coup ?

Merci à toi !
Commenter la réponse de qqchquicommenceparQ
matmat8888 25 Messages postés lundi 22 mai 2017Date d'inscription 6 décembre 2017 Dernière intervention - Modifié par matmat8888 le 5/12/2017 à 10:11
0
Utile
5
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 !
qqchquicommenceparQ 884 Messages postés dimanche 24 mai 2009Date d'inscription 10 décembre 2017 Dernière intervention - 5 déc. 2017 à 10:53
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 ?) ?
matmat8888 25 Messages postés lundi 22 mai 2017Date d'inscription 6 décembre 2017 Dernière intervention > qqchquicommenceparQ 884 Messages postés dimanche 24 mai 2009Date d'inscription 10 décembre 2017 Dernière intervention - 5 déc. 2017 à 11:29
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 !
qqchquicommenceparQ 884 Messages postés dimanche 24 mai 2009Date d'inscription 10 décembre 2017 Dernière intervention > matmat8888 25 Messages postés lundi 22 mai 2017Date d'inscription 6 décembre 2017 Dernière intervention - 5 déc. 2017 à 11:37
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.
matmat8888 25 Messages postés lundi 22 mai 2017Date d'inscription 6 décembre 2017 Dernière intervention > qqchquicommenceparQ 884 Messages postés dimanche 24 mai 2009Date d'inscription 10 décembre 2017 Dernière intervention - 6 déc. 2017 à 12:38
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.
qqchquicommenceparQ 884 Messages postés dimanche 24 mai 2009Date d'inscription 10 décembre 2017 Dernière intervention - 6 déc. 2017 à 13:43
mais je t'en prie, explique-moi donc ce que tu appelles des wrappers ?
Commenter la réponse de matmat8888