Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 12/11/2013, à 21:33

Romain77

[Résolu] Probleme avec une tache CRON qui refuse de s'executer

Salut a tous !

Je viens vers vous car j' ai besoin d'un oeil neuf. Je tourne en rond depuis plusieurs heures sans comprendre ou je me plante ... car de toute evidence je me plante quelque part.

Voila mon soucis : J' ai une ligne dans mon crontab qui merdouille.

Voici mon crontab (très simple ... j' ai quasiment rien dedans.)

@reboot root /root/reboot.sh

30 * * * * root /home/romain/saventransfer

39 19 * * * root /home/romain/top10

Et c'est bien la dernière ligne qui me taquine. (l'heure 19h39 c'était une heure de test. La tache devra s'executer, quand ça fonctionnera, a minuit tous les jours.)

Voici ce que contient le script "top10"

#!/bin/sh

mysql -u root -p[monpasswd] < requete.sql

j' ai meme mis les droits en 755 sur mon script top10

-rwxr-xr-x 1 romain romain        51 Nov 12 19:35 top10

Et dans le fichier requête.sql se trouve simplement une requête SQL comme vous pouvez vous en douter.

Alors le script fonctionne correctement car quand je l'execute manuellement :

root@s1691292:/home/romain# ./top10

La requête fait son boulot. Seulement lorsque le script est "exécuté" via le script ... rien de ne passe.

Et dans le log :

Nov 12 19:39:01 s1691292 CRON[3191]: (root) CMD (/home/romain/top10)

mais pas de message d'erreur.

Tout ceci me laisse perplexe car quand j' essaye de procéder par elimination, tout est censé coller :

- Requete -> OK
- Script -> OK
- Script qui execute la requête correctement -> OK
- Service CRON -> OK
- Autres taches CRON qui fonctionnent -> OK
- Execution de la requête en question -> FAIL

Bref, je seche la ! Je ne vois pas ou je foire.

Et merci d'avance pour le coup de main smile

++

Dernière modification par Romain77 (Le 12/11/2013, à 23:10)

Hors ligne

#2 Le 12/11/2013, à 22:29

tiramiseb

Re : [Résolu] Probleme avec une tache CRON qui refuse de s'executer

Salut,

Je pense que c'est un problème de path :

Avec la commande suivante :

mysql -u root -p[monpasswd] < requete.sql

... tu fais utiliser le fichier "requete.sql" du répertoire courant.

Lorsque tu lances le script avec "./top10", tu es dans le répertoire /home/romain, alors le fichier "requete.sql" est bien trouvé.

Lorsque, dans le cron, tu lances le script avec "/home/romain/top10" et tu es dans le répertoire /root, alors le fichier "requete.sql" n'est pas trouvé dans /root...

Deux possibilités :
- pointer le fichier requete.sql avec son chemin complet dans le script
- faire "cd /home/romain && ./top10" dans ton crontab

Hors ligne

#3 Le 12/11/2013, à 22:35

Romain77

Re : [Résolu] Probleme avec une tache CRON qui refuse de s'executer

Et quand j' avais dis que je "merdais" quelque part ... c'était pas une blague ...

Merci tiramiseb. Evidement maintenant ça fonctionne !

Je pense mériter d'être sur le podium pour la loose du jour la ! Mais j' ai une petite excuse : je suis naze smile

Encore merci pour le coup de main

Hors ligne