Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 04/02/2010, 10h06   #1
Membre Expert
 
Inscription : avril 2006
Messages : 1 332
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 332
Points : 1 314
Points : 1 314
Par défaut [CRON][RHEL5]Mais pourquoi ce diable de script ne se lance t'il pas?!

Bonjour à tous,

Donc voila, depuis deux semaines j'essaye de lancer un script tous les soirs à 00h30, à l'aide d'une tâche CRON. Man et google m'ont filé quelques tuyaux mais malgrès les tests, je n'ai encore trouvé aucune solution qui fonctionne.

Chemin absolu du script:
Code :
/web_applis/www/html/horus/batch/collecte_launcher.cron
Crontab -e (utilisateur webadmin):
Code :
1
2
3
4
5
PATH=/web_applis/www/html/horus/batch/
MAILTO=webadmin
HOME=/
 
30 0 * * * webadmin collecte_launcher.cron >> /web_applis/log/cron/collecte/cron_collecte.log
Contenu du script collecte_launcher.cron
Code :
1
2
3
4
5
6
7
8
#!/bin/bash
#Fichier CRON de lancement de la collecte
#Getfile
/usr/bin/php -f /web_applis/www/html/horus/batch/getfile/getfile.php
#Buffering
/usr/bin/php -f /web_applis/www/html/horus/batch/buffering/buffering.php
#Agregation
/usr/bin/php -f /web_applis/www/html/horus/batch/agregation/agregation.php
Du php...
Les chemin sont corrects (/usr/bin/php -f /web_applis/www/html/horus/batch/getfile/getfile.php se lance en terminal sans problèmes)

Les droits sont bons (terminal en webadmin et /./web_applis/www/html/horus/batch/collecte_launcher.cron lance le script).

J'ai essayé plusieurs trucs:
Code :
1
2
3
30 0 * * * webadmin /web_applis/www/html/horus/batch/collecte_launcher.cron >> /web_applis/log/cron/collecte/cron_collecte.log
 
30 0 * * * webadmin /./web_applis/www/html/horus/batch/collecte_launcher.cron >> /web_applis/log/cron/collecte/cron_collecte.log
Tout se que j'obtient est la création du fichier log... vide (alors qu'on devrait y trouver les sorties écran du php si je ne m'abuse...)

Quelqu'un pour me dépanner? Merci.
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 10h23   #2
Modérateur
 
Avatar de gangsoleil
 
R&D en systemes informatiques bas niveau Unix/Linux
Inscription : mai 2004
Messages : 5 129
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : R&D en systemes informatiques bas niveau Unix/Linux

Informations forums :
Inscription : mai 2004
Messages : 5 129
Points : 8 749
Points : 8 749
Bonjour,

Tu as tres certainement un probleme d'environnement lors de l'appel a php : cela fonctionne bien dans un terminal car ton environnement est bien fait, mais comme cet environnement n'est pas chargé dans la crontab, l'execution ne se fait pas.

Essaye de lancer ta commande dans un environnement vierge, ca devrait te permettre de trouver ce qui ne va pas.
__________________
Modérateur "C", "Informatique Générale & Hardware" et "Unix"
Les règles du forum
gangsoleil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 16h44   #3
Membre Expert
 
Inscription : avril 2006
Messages : 1 332
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 332
Points : 1 314
Points : 1 314
Bonjour et merci mais, euh, un "environnement vierge"? Je trouve ça ou?

Je m'étais dis que hors terminal les variables d'environnement système n'étaient peu être pas définies, c'est pour ça que dans mon script j'ai remplacé les "php monphp.php" par des "/usr/bin/php -f monphp.php".

Cela dis, le problème persiste, et à part le chemin de php, je ne vois pas ce qui pourrait dépendre de l'environnement...
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2010, 01h57   #4
Membre confirmé
 
Avatar de SYL666
 
Cédric
Inscription : novembre 2003
Messages : 308
Détails du profil
Informations personnelles :
Nom : Cédric

Informations forums :
Inscription : novembre 2003
Messages : 308
Points : 296
Points : 296
Essayons petit à petit :

1- les logs ?
y a t il des choses intéressantes dans /var/log/secure et /var/log/messages ?
en rapport avec ton script cron ?

2- juste au cas ou :
/web_applis/www/html/horus/batch/collecte_launcher.cron a bien les droits d'execution ?
Si tu le lances manuellement, il fait bien ce que tu souhaites ?

3- debug
Code :
1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
#Fichier CRON de lancement de la collecte
logger " == c est partie mon kiki : getfile"
#Getfile
/usr/bin/php -f /web_applis/www/html/horus/batch/getfile/getfile.php
#Buffering
logger " == buffering"
/usr/bin/php -f /web_applis/www/html/horus/batch/buffering/buffering.php
#Agregation
logger " == Agregation"
/usr/bin/php -f /web_applis/www/html/horus/batch/agregation/agregation.php
logger " == Fini"
Cela devrait ajouter les lignes correspondantes dans /var/log/messages.
Cela te permettra de savoir au moins si ton script se lance, et s'il s'arrête au millieu.
__________________
The Big Bang theory : In the beginning there was nothing, and it exploded. (Terry Pratchett)

IT Quote : "Unix is user-friendly. It's just very selective about who its friends are."
SYL666 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2010, 10h11   #5
Membre Expert
 
Inscription : avril 2006
Messages : 1 332
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 332
Points : 1 314
Points : 1 314
Salut, alors:

Dans /var/log/secure j'ai que des trucs qui se rapportent à mes ouvertures de session ssh, rien qui ressemble à du cron, ni qui corresponde à l'horaire en question;
Dans /var/log/messages, que des ouvertures de session FTP et des redémarages du daemon syslog semble t'il.

/./web_applis/www/html/horus/batch/collecte_launcher.cron lance le script (à partir d'un terminal utilisateur "webadmin"), donc les droits d'execution sont ok:


Pour le debug, j'essaye ca, je post le result demain.

Merci bien!
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2010, 11h34   #6
Membre Expert
 
Inscription : avril 2006
Messages : 1 332
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 332
Points : 1 314
Points : 1 314
Ce matin, rien de neuf dans /var/log/message (enfin si après que j'ai lancé le script à la main ).

C'est donc bien ma tache cron qui déconne. Un problème de syntaxe?

doit on mettre le nom de l'utilisateur devant le script à lancer?

Et pour le script en lui même, doit on mettre son chemin d'accès (/web_applis/...) ou sa commande d'execution (/./weba_applis/...).

Ya tout et rien sur google !
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2010, 16h18   #7
Modérateur
 
Avatar de gangsoleil
 
R&D en systemes informatiques bas niveau Unix/Linux
Inscription : mai 2004
Messages : 5 129
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : R&D en systemes informatiques bas niveau Unix/Linux

Informations forums :
Inscription : mai 2004
Messages : 5 129
Points : 8 749
Points : 8 749
Bonjour,

Pour l'environnement vierge, tu peux par exemple creer un utilisateur test sans option particuliere, puis te logguer via "su - test"
__________________
Modérateur "C", "Informatique Générale & Hardware" et "Unix"
Les règles du forum
gangsoleil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2010, 20h40   #8
Membre confirmé
 
Avatar de SYL666
 
Cédric
Inscription : novembre 2003
Messages : 308
Détails du profil
Informations personnelles :
Nom : Cédric

Informations forums :
Inscription : novembre 2003
Messages : 308
Points : 296
Points : 296
Citation:
Envoyé par boo64 Voir le message
Ce matin, rien de neuf dans /var/log/message (enfin si après que j'ai lancé le script à la main ).
Bon réflexe!

Citation:
Envoyé par boo64 Voir le message
C'est donc bien ma tache cron qui déconne. Un problème de syntaxe?
On a donc la source du problème.

Citation:
Envoyé par boo64 Voir le message
doit on mettre le nom de l'utilisateur devant le script à lancer?
Pas si tu créé ceci depuis l'utilisateur en question, je ne pense pas.

Personnellement, je créer un fichier (en tant que root) :
/etc/cron.d/mon_cron

Qui contiendrait exactement ceci :
Code :
1
2
3
4
5
PATH=/web_applis/www/html/horus/batch/
MAILTO=webadmin
HOME=/
 
30 0 * * * webadmin /web_applis/www/html/horus/batch/collecte_launcher.cron >> /web_applis/log/cron/collecte/cron_collecte.log
.... Maintenant, question à 2 balles : est ce que ton webadmin a un shell ?
ça fait quoi si tu fais :
juste au cas ou... pour vérifier.

PS : Je crois qu'il y a une méthode pour forcer l'exécution d'un cron job particulier... non, parce que si tu es obligé d'attendre minuit et demi à chaque fois... ça doit être lassant comme tests
__________________
The Big Bang theory : In the beginning there was nothing, and it exploded. (Terry Pratchett)

IT Quote : "Unix is user-friendly. It's just very selective about who its friends are."
SYL666 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2010, 09h51   #9
Membre Expert
 
Inscription : avril 2006
Messages : 1 332
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 332
Points : 1 314
Points : 1 314
Bonjour,

Bonne nouvelle, ce matin je constate que le script se lance bien pendant la nuit!

Reste à savoir pourquoi... le cron (terminal webadmin: crontab -e):
Code :
30 0 * * * /web_applis/www/html/horus/batch/collecte_launcher.cron >> /web_applis/log/cron/collecte/cron_collecte.log
Il ne faut donc pas mettre le nom d'utilisateur dans la crontab de ce dernier...
Pourtant j'aurai juré avoir testé ça au moins 2 ou 3 fois, sans résultats.

J'ai également redémarré cron.d, ce que je n'avait pas fait auparvant, pensant que ca n'était pas nécessaire (à juste titre?).

Enfin merci du coup de main!
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 03h41.


 
 
 
 
Partenaires

Hébergement Web