[Unix Solaris 5.8] - crontab prblm PATH

david -  
 Jalal -
Bonjour,

J'ai un sacré problème avec la crontab.

J'ai configuré l'exécution d'un script dans la crontab de l'utilisateur root et j'ai un mail qui me prévient qu'il ne retrouve pas la commande utilisée dans ce script.

Or cette commande se trouve dans le PATH du root, par contre j'ai l'impression que le PATH est différent avec crontab car j'ai placé un echo $PATH dans mon script et le PATH comprend seulement deux chemins alors que celui que j'ai configuré dans le PATH du root est beaucoup plus complet et me permet de lancer mon script à la main.

Merci d'avance pour vos réponses.

17 réponses

jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Salut,

Affiche-nous la ligne de ton crontab s'il te plaît, merci. ;-)
Ta ligne comprend-t-elle le chemin complet vers ton programme ?
As-tu exporté le "PATH" de root ?
0
Tilk
 
Bonjour,
j'ai le meme probleme et voici mon fichier /var/spool/cron/crontabs/root.
en fait je voudrais exécuter le fichier "fektest.sh" qui se trouve dans le repertoire racine (/) de mon DD


10 3 * * * /usr/sbin/logadm
15 3 * * 0 /usr/lib/fs/nfs/nfsfind
1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1
30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean
50 8 * * * ./fektest.sh
#10 3 * * * /usr/lib/krb5/kprop_script ___slave_kdcs___
~


Merci
Tilk
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

en fait je voudrais exécuter le fichier "fektest.sh" qui se trouve dans le repertoire racine (/) de mon DD

50 8 * * * ./fektest.sh


ton cas ce n'est pas pareil (en fin je suppose vu que david n'a rien affiché)

dans ton crontab tu veux lancer la commande ./fektest.sh mais ./ ce n'est pas le répertoire racine mais le répertoire courant
le répertoire racine est / donc tu dois écrire plutôt
50 8 * * * /fektest.sh 

0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
cron n'utilise pas le PATH défini dans le ou les profile.
il n'y a pas de login, c'est à l'utilisateur de définir les bon PATH dans le crontab.
0
Tilk
 
Slt Lami20j,

je viens de metre /fektest.sh com vous avez dit au lieux de ./fektest.sh
mais ca ne marche toujours pas !
ne faudrait il pas relancer le service cron ? mais je n sais pas comment le faire !

Merci Tilk
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
ne faudrait il pas relancer le service cron ? mais je n sais pas comment le faire !
Normalement il ne faut pas le relancer mais tu peux toujours essayer

affiche
find / -name  fektest.sh 
find /etc -name '*cron*'
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Tilk
 
Voilà le resultat des deux commandes que vous avez demandé

bash-2.05# find / -name fektest.sh
/fektest.sh


bash-2.05# find /etc -name '*cron*'
/etc/cron
/etc/cron.d
/etc/cron.d/cron.deny
/etc/default/cron
/etc/init.d/cron
/etc/rc0.d/K40cron
/etc/rc1.d/K40cron
/etc/rc2.d/S75cron
/etc/rcS.d/K40cron
/etc/webmin/cluster-cron
/etc/webmin/cron
bash-2.05#
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
affiche aussi
ls -l /fektest.sh 
pour redémarrer ton cron utilise
/etc/init.d/cron restart
--
lami20j
0
Tilk
 
bash-2.05# ls -l fektest.sh
-rwxr-xr-x 1 root other 7 May 11 08:38 fektest.sh
bash-2.05#

par ailleurs, le service cron est bien demarré

Tilk
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Peux-tu afficher ton script?
0
Tilk
 
c'est juste une commande et ca marche tres bien manuellement quand je fais ./fektest.sh à l'invite

le fichier fektest.sh ne contien qu'une seule ligne

reboot


en fait je voudrais pouvoir redemarer mon serveur à des moment precis
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
essaie avec
50 8 * * * /sbin/reboot
affiche le résultat de la commande
 crontab -l -u root
chez moi par exemple j'ai
59 23  * * * /sbin/init 0
et ça fonctionne sans problèmes
0
Tilk
 
Désolé mais ca ne marche tjrs pas
j'ai mis directement "50 8 * * * /sbin/reboot" et modifier l'heure par rapport à l'heure systeme pour voir l'exécution mais rien

voici le resultat de la commande demandée

bash-2.05# crontab -l -u root
crontab: illegal option -- u
crontab: proper usage is:
crontab [file | -e | -l | -r ] [user]
bash-2.05#
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
alors affiche
crontab -l root
tu peux tester comme ça
ajoute une commande de genre
*/1 * * * *  echo salut  >> /dev/pts/1

ensuite en root tape
tail -f /var/log/syslog

si tu vois des lignes comme ça

May 11 12:29:02 debian /USR/SBIN/CRON[12821]: (root) CMD (echo salut >> /dev/pts/1)


alors ton cron fonctionne
0
Tilk
 
Slt,
Oui j'ai éffectivement le comporttement que vous decrivez là
donc mon cron fonctionne !

mais pourkoi ma commande ne marche pas ?
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Au lieu de reboot mets
 /sbin/init 6
0
Tilk
 
je crois que c'est la magie car ca ne marche toujours pas

Tilk
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
tu es en root ou pas?
chez moi ça marche
0
Jalal
 
Ne jamais modifier le fichier crontab utilisateur directement. En effet, il ne faut pas faire :
vi /var/spool/cron/crontabs/root
=> Cette modification n'est pas effective...

Solution: (il faut passer par crontab -e pour éditer la crontab)
export EDITOR=vi
crontab -e
Faire les modifications et enregistrer.

Voili voilou..
0