Script OK manuellement mais pas en crontab
Fermé
Clikti
-
3 juin 2011 à 09:53
dmganges Messages postés 150 Date d'inscription mercredi 29 octobre 2008 Statut Membre Dernière intervention 25 novembre 2013 - 6 juin 2011 à 20:27
dmganges Messages postés 150 Date d'inscription mercredi 29 octobre 2008 Statut Membre Dernière intervention 25 novembre 2013 - 6 juin 2011 à 20:27
A voir également:
- Exécuter crontab manuellement
- Impossible d'exécuter le fichier binaire : erreur de format pour exec() - Forum Ubuntu
- Application introuvable pour exécuter cette action - Forum Samsung
- Executer en tant qu'administrateur mac - Forum MacOS
- Actuellement le système d'exploitation n'est pas configuré pour exécuter cette application - Forum Word
- Impossible d'executer la macro il est possible qu'elle ne soit pas disponible ✓ - Forum Excel
7 réponses
dmganges
Messages postés
150
Date d'inscription
mercredi 29 octobre 2008
Statut
Membre
Dernière intervention
25 novembre 2013
19
3 juin 2011 à 10:07
3 juin 2011 à 10:07
C'est root qui lance le crontab.
Donc en début de ton script il te faut faire un su "propriétaire de la base", du genre :
su oracle
mieux
su - oracle
s'il y a des variables d'environnement à positionner...
puis tu déroules ton script même biscornu :P
sqlplus toto pwdtoto
...
...
Donc en début de ton script il te faut faire un su "propriétaire de la base", du genre :
su oracle
mieux
su - oracle
s'il y a des variables d'environnement à positionner...
puis tu déroules ton script même biscornu :P
sqlplus toto pwdtoto
...
...
salut,
crontab n'utilise pas de nom d'utilisateur. (ça existe, mais ailleurs)
donc , en tant que root
crontab n'utilise pas de nom d'utilisateur. (ça existe, mais ailleurs)
donc , en tant que root
crontab -eet, une fois dans l'éditeur
0 3 * * * /usr/sbin/savebdd
En fait si on ne mets pas de fichier log on reçoit un email
Je reçois ceci : /bin/sh: /usr/sbin/savebdd: Permission denied
Tu penses que si j'ajoute le log au crontab les infos seront plus détaillées ?
J'ai quelques scripts, ils fonctionnent tous ... Sauf celui ci :s
Je reçois ceci : /bin/sh: /usr/sbin/savebdd: Permission denied
Tu penses que si j'ajoute le log au crontab les infos seront plus détaillées ?
J'ai quelques scripts, ils fonctionnent tous ... Sauf celui ci :s
J'ai essayé avec un fichier log, j'ai le même message :
/bin/sh: /usr/sbin/savebdd: Permission denied
/bin/sh: /usr/sbin/savebdd: Permission denied
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
dmganges
Messages postés
150
Date d'inscription
mercredi 29 octobre 2008
Statut
Membre
Dernière intervention
25 novembre 2013
19
3 juin 2011 à 17:48
3 juin 2011 à 17:48
Pardon je suis allé un peu vite.
Perso j'administrais plusieurs machines et Bdd, tous mes cron étaient lancés par root.
Donc dans ton cas si ça marche à la mimine, et si c'est le même utilisateur qui lance en cron, ça devrait fonctionner.
Tu as bien un pb de droits.
ATTENTION quand tu lances à la mimine des variables environnement sont positionnées. Ce qui N'EST PAS le cas en cron.
Tu peux être amené à les positionner en début de script du genre :
ORACLE_HOME=$ORA_HOME ; export ORACLE_HOME
ORACLE_SID=$ORA_SID ; export ORACLE_SID
Parsème ton script de echo, du genre
echo "Répertoire créés"
Tu auras les résultats dans &1 (ST_refE dans l'exemple ci-dessus)
&2 (TonFichierCompteRenduExécution contiendra lui les erreurs d'exécution)
@+
Perso j'administrais plusieurs machines et Bdd, tous mes cron étaient lancés par root.
Donc dans ton cas si ça marche à la mimine, et si c'est le même utilisateur qui lance en cron, ça devrait fonctionner.
Tu as bien un pb de droits.
ATTENTION quand tu lances à la mimine des variables environnement sont positionnées. Ce qui N'EST PAS le cas en cron.
Tu peux être amené à les positionner en début de script du genre :
ORACLE_HOME=$ORA_HOME ; export ORACLE_HOME
ORACLE_SID=$ORA_SID ; export ORACLE_SID
Parsème ton script de echo, du genre
echo "Répertoire créés"
Tu auras les résultats dans &1 (ST_refE dans l'exemple ci-dessus)
&2 (TonFichierCompteRenduExécution contiendra lui les erreurs d'exécution)
@+
dmganges
Messages postés
150
Date d'inscription
mercredi 29 octobre 2008
Statut
Membre
Dernière intervention
25 novembre 2013
19
3 juin 2011 à 17:53
3 juin 2011 à 17:53
Tout simplement l'utilisateur qui lance cron a t-il les droits de le faire ?
Voir
/etc/cron.allow
/etc/cron.deny
Voir
/etc/cron.allow
/etc/cron.deny
Mais si cron.allow et cron.deny n'existe pas ça veut dire que c'est uniquement root qui peut executer cron non ?
J'ai ajouté root dans cron.allow .... Rien n'a changé :s
Je comprends pas, si root n'a pas la permission pour executer un script, qui en a la permission ? :s
Je rappel que j'ai quelques scripts, qui fonctionnent tous avec cron. Seulement celui ci me pose problème.
J'ai ajouté root dans cron.allow .... Rien n'a changé :s
Je comprends pas, si root n'a pas la permission pour executer un script, qui en a la permission ? :s
Je rappel que j'ai quelques scripts, qui fonctionnent tous avec cron. Seulement celui ci me pose problème.
Finalement en écrivant le dernier message j'ai trouvé la solution :
J'ai simplement fait ceci :
chown root mon/chemin/du/script
chmod 711 mon/chemin/du/script
J'ai supprimé le fichier cron.allow que j'avais crée avant.
Et maintenant il se lance avec cron sans pb.
Bizarre car j'avais bien crée le script avec root ... Mais bon
J'ai simplement fait ceci :
chown root mon/chemin/du/script
chmod 711 mon/chemin/du/script
J'ai supprimé le fichier cron.allow que j'avais crée avant.
Et maintenant il se lance avec cron sans pb.
Bizarre car j'avais bien crée le script avec root ... Mais bon
dmganges
Messages postés
150
Date d'inscription
mercredi 29 octobre 2008
Statut
Membre
Dernière intervention
25 novembre 2013
19
6 juin 2011 à 20:27
6 juin 2011 à 20:27
Merci d'avoir pris le temps de donner la solution.
Met un [Résolu] dans le titre ça aide ceux qui font des recherches.
Effectivement root n'a pas besoin de se trouver dans cron.allow.
J'ai pour habitude de mettre en exécutable (+x) les scripts qui le sont et j'évite de lancer par :
. ./script
ou
sh script
Désolé, je n'ai vraiment pas penser à un pb de droit sur le script lui-même.
Ton chown root mon/chemin/du/script me laisse plus perplexe dans la mesure où c'est le crontab de root qui lance un script appartenant à root...
Pour info lorsque un utilisateur lamda lance le script d'un autre utilisateur, il faut passer également le répertoire en (+x) au bon niveau suivant qu'il appartient au même groupe ou non. Dans ce cas le "x" au niveau du répertoire indique qu'il peut être parcouru...
Sinon la aussi "permission denied" :-)
BRAVO
Met un [Résolu] dans le titre ça aide ceux qui font des recherches.
Effectivement root n'a pas besoin de se trouver dans cron.allow.
J'ai pour habitude de mettre en exécutable (+x) les scripts qui le sont et j'évite de lancer par :
. ./script
ou
sh script
Désolé, je n'ai vraiment pas penser à un pb de droit sur le script lui-même.
Ton chown root mon/chemin/du/script me laisse plus perplexe dans la mesure où c'est le crontab de root qui lance un script appartenant à root...
Pour info lorsque un utilisateur lamda lance le script d'un autre utilisateur, il faut passer également le répertoire en (+x) au bon niveau suivant qu'il appartient au même groupe ou non. Dans ce cas le "x" au niveau du répertoire indique qu'il peut être parcouru...
Sinon la aussi "permission denied" :-)
BRAVO
3 juin 2011 à 10:31
15 19 * * 5 /home/proc2/stop_start refE >/home/proc2/cr/ST_refE 2> /TonFichierCompteRenduExécution