Pbs d'exécution d'un cron

Bonjour à tous,

Je me lance dans les cron que je ne connaissais pas…
Je désire exécuter un script toutes les 15 minutes de chaque heure, tous les jours de l’année.

J’ai donc cherché à droite et à gauche (notamment ici) la méthode à utiliser, mais semble t-il j’ai du louper quelque chose quelque part !!! :laughing:

Voici comment j’ai procédé :
Etant logué en root, je tape crontab -e, ce qui m’ouvre nano…
Une fois mes modifs sauvegardées, je vérifie par un crontab -l :[code]root@serveur01: ~ # crontab -l

m h dom mon dow command

Lancement toutes les 15 minutes du script python “ipcheck” (/usr/sbin/ipcheck.py) de vérification de changement d’IP

(via checkip.dyndns.org) et mise à jour (via dyndns.org) si nécessaire de l’IP de SERVEUR01

*/15 * * * * root sh /etc/ppp/ip-up.d/dyndns-update.sh >> /var/log/dyndns-update.log[/code]

Par acquis de conscience, je fais un petit /etc/init.d/cron restart :root@serveur01: ~ # /etc/init.d/cron restart Restarting periodic command scheduler: crond.

Et là, je me dis que tout est bon…
Sauf que je me met le doigt dans l’oeil jusqu’au coude !!! (et ça fait mal :smt005 )

Et, à priori, ça ne vient pas de mon script lui-même car si je l’exécute manuellement, tout se passe bien :root@serveur01: ~ # sh /etc/ppp/ip-up.d/dyndns-update.sh >> /var/log/dyndns-update.log ipcheck.py: linux-force.homelinux.net good XX.XX.XX.XX -update successful

Pour info :root@serveur01: /etc/ppp/ip-up.d # ls -a -l total 3 drwxr-xr-x 2 root root 1024 nov 8 04:56 . drwxr-xr-x 3 root root 1024 nov 8 02:31 .. -rwx------ 1 root root 296 nov 8 04:56 dyndns-update.sh

Je n’arrive pas à voir d’où vient mon erreur ???
Si une bonne âme pouvait m’aiguiller “sur le bon chemin”, svp… :mrgreen:

Merci d’avance,
Eric

ton script donc contenir une ligne user
du genre
su -l -c sh ta_commande

a essayer ?

pour lancer un script python
/usr/bin/python mon_script.py?

Heu… désolé dchost99, mais j’ai pas tout compris dans ton message… :blush:

C’est cette commande que tu me demandes de tester ?root@serveur01: /etc/init.d # su -l -c sh /etc/ppp/ip-up.d/dyndns-update.sh >> /var/log/dyndns-update.log identifiant inconnu : /etc/ppp/ip-up.d/dyndns-update.sh
=> j’ai regardé le manpage de su mais je ne vois pas ce que tu veux faire…

normal, j’ai écris n’importe quoi :mrgreen:

je voulais dire que:
quand tu lance un script au démarrage faut lui préciser qui est l’utilisateur qui le lance

su -l “ton_user” -c “la_commande_ou_le script”
(-l pour login et -c pour la commande à exécuter, je crois)

, et pour python je voulais dire aussi de lancer python directement à la place du script.py
donc

python mon_script.py

pour tester la commande mets le dans
/etc/rc.local avant le “exit 0” et si ça marche il n y a pas de raison que cron refuse

Bon ben, merci à toi dchost99 car maintenant ça a l’air de fonctionner correctement !!!

J’ai présenté ma commande comme tu l’as suggéré :[code]# crontab -l

m h dom mon dow command

Lancement toutes les 15 minutes du script python “ipcheck” (/usr/sbin/ipcheck.py) de vérification de changement d’IP

(via checkip.dyndns.org) et mise à jour (via dyndns.org) si nécessaire de l’IP (fournie par Alice) pour SRV01

*/15 * * * * su -l root -c “/etc/ppp/ip-up.d/dyndns-update.sh >> /var/log/dyndns-update.log”[/code]
et le script se lance bien toutes les 15 minutes !!! :mrgreen:

Super !
Merci encore…

:smt006