Problème avec crontab (pas d'execution du script)

Problème avec crontab (pas d'execution du script) - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 16-10-2007 à 16:08:15    

Bonjour,
 
            J'ai un problème avec crontab, j'utilise un script init.d pour initialiser le firewall, la QoS etc...le script marche parfaitement bien manuellement mais quand je met dans crontab la commande /etc/init.d/monscript start (avec les conditions de démarrage, date, heure etc....) rien ne se passe. J'ai lu sur ce forum que le probleme pouvait venir que crontab execute les scripts avec son propre environnement (toutes les commandes ne sont pas disponibles ?), j'ai aussi entendu parler d'une variable PATH mais je ne sais pas ce que celà represente....que fait-il faire exactement pour faire fonctionner mon script ?
 
Merci à tous !
RedVivi

Reply

Marsh Posté le 16-10-2007 à 16:08:15   

Reply

Marsh Posté le 16-10-2007 à 16:16:44    

Plusieurs choses :
 - PATH est une variable contenant la liste des dossiers dans lesquels se trouvent des exeécutables pouvant être éxécuté sans spécificié le chemin (par exemple emacs qui se trouve dans /usr/bin/emacs peut etre appelé simplement emacs, sans le /usr/bin devant). Généralement un programme transmet son environnement au processus enfantés. Donc essayes en définissant ta variable PATH dans ton crontab (cf les man pages de crontab) avec tous les dossiers qui vont bien (regardes ton script et localise les exec).
 
 - cron exécute également ses programmes avec quelques restrictions de privilèges. Je n'ai pas su déterminer quelles sont les modifications apportées par cron mais c'est à creuser


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 23-10-2007 à 02:14:01    

Pour que tout fonctionne en cron, tu doit mettre les chemins absolus des executables.
which application
ou
type -p application
t'aidera
 
Ex :  
*/30 * * * *   if /bin/ping -c 1 fr.pool.ntp.org >/dev/null ; then /usr/sbin/ntpdate -s fr.pool.ntp.org ; fi
 
( lance un ntpdate si le réseau permet de joindre le serveur ntp toutes les 30 minutes )


Message édité par sputnick le 23-10-2007 à 02:16:43
Reply

Marsh Posté le 23-10-2007 à 09:33:44    

Remplace déjà ton script par un script tout con qui logue quelque chose quelque part, histoire de voir si le script est appelé ou non.

Reply

Marsh Posté le 23-10-2007 à 12:10:16    

Oui mon script est bien appelé, le problème c'est que je l'ai mal construit (je n'ai pas définit, par exemple, de variable $[IPTABLES] contenant le chemin du binaire de iptables, je vais devoir jouer avec les options de remplacement de vim...

Reply

Marsh Posté le 23-10-2007 à 21:41:41    

redvivi,
 
qu'est-ce que c'est que cette syntaxe ???
Ca marchera pas comme ça...
 
${IPTABLE} ça oui
"$IPTABLES" ça oui
$IPTABLES à la rigueur


Message édité par sputnick le 23-10-2007 à 21:43:27
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed