IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Impossible de lancer une tache en CRON


Sujet :

Shell et commandes GNU

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 145
    Points : 77
    Points
    77
    Par défaut Impossible de lancer une tache en CRON
    Bonjour à tous,

    Depuis hier impossible de lancer un script, aussi simple soit-il en CRON. A la base c'était pour lancer un script d'import en php, ça fonctionnait pas alors j'ai juste voulu lancer un script qui faisait un :
    exec('echo "CRONTAB" | tee -a test.txt');

    Ce script en le lançant en ligne de commande fonctionne. Je me suis dit que peut-être c'était à cause du fait que ce soit du php. ALors j'ai fait un meme script qui fait la meme chose en .sh
    En ligne de commande ça marche, pas en CRON.

    J'ai à de multiples occasion mis des taches en CRON sur la PROD et ça fonctionne, pas en environnement de qualif. Donc peut-etre que CRON n'est pas activé ? Et bien si, un petit ps -es | grep cron et j'ai bien mon CRON.

    Je sais plus quoi faire... Voici mon CRON :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    52 11 * * * /home/www/qualif/htdocs/test_dev/test.sh
    Mon test.sh est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    #!/bin/bash
    echo "CRONTAB" | tee -a test.txt
    Si dans le répertoire test_dev, je tape ./test.sh j'ai bien un "CRONTAB" en plus dans mon test.txt..

    Et en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    52 11 * * * /home/www/qualif/htdocs/test_dev/test.sh 2>/home/www/qualif/htdocs/test_dev/cron.txt
    Mon fichier cron.txt ne se créé pas..

    Merci d'avance pour votre aide précieuse.

  2. #2
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    deja ton tee sert à rien

    echo "dfdsghsgj" > /tmp/fichier suffitensuite coté cron tu fais un 2> donc seul la sortie d'erreur hors un echo ne genere pas d'erreur donc il est normal que ton fichier cron.txt ne soit pas crée...

    en plus tu peux tester sans avoir un script ....
    et lancer directement

    .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    22 12 * * * echo "test".$(date +\%Y\%m\%d) > /tmp/cron.txt
    si ton fichier se crée non vide c'est que ton cron fonctionne parfaitement.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 145
    Points : 77
    Points
    77
    Par défaut
    Merci frp31 de ta réponse !

    Oui le tee ne sert à rien c'est vrai.
    J'ai donc fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "test".$(date +\%Y\%m\%d) > cron.txt
    et le cron.txt s'est bien crée dans le répertoire. Je l'ai effacé, et j'ai mis la ligne de commande en Crontab.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    22 14 * * * echo "test".$(date +\%Y\%m\%d) > /home/www/qualif/htdocs/test_dev/cron.txt
    Le fichier cron.txt ne s'est pas crée...
    Si je fais j'ai ça en réponse :
    monuser 23810 23029 0 14h23 pts/0 00:00:00 grep cron

    En fait je viens de me rendre compte que c'est processus du grep qui est trouvé et non le cron.

    Donc le CRON n'est pas activé ? Si c'est le cas, comment le faire ?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 145
    Points : 77
    Points
    77
    Par défaut
    Je viens de faire un sur le user root et la j'ai bien le procéssus du cron trouvé..
    J'ai ça en résultat :

    root 10102 1 0 2013 ? 00:01:48 /usr/sbin/cron

    Dois-je en conclure que la dernière utilisation du cron fut en 2013 ? Faudrait-il juste le redémarrer ?

    Merci d'avance !

  5. #5
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    bonne analyse pour le 'grep' ....
    c'est le coup classique...

    tu peux effectivement redemarrer ton processus cron...


    je suppose selon ta distrib /etc/init.d/crond restart ou stop puis start

    vérifies aussi que ce soit pas anacron à la place de cron ou crond (là encore ça dépand des distribs) mais ça se repère facilement.

    au pire il y a surement un SXXcrond ou cron ou anacron dans un /etc/rc.*/ que tu peux utiliser pour démarrer aussi ... mais en principe c'est juste un lien spécial pour le boot/shutdown vers /etc/init.d/crond

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 145
    Points : 77
    Points
    77
    Par défaut
    frp31 merci pour ton aide !


    Donc mon boss m'a dit attend je connais rien mais je vais faire un truc, il a tapé "reboot" ça a redémarrer le serveur et la cron marche lol !

    Bon bah problème résolu

    La prochaine fois ce sera en mode bourrin aussi

    Merci pour ton aide en tout cas !

  7. #7
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    donc redémarrer le service cron suffisait ...

    travail de gorets .....

    on dira rien ... parce que c'est vendredi

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 145
    Points : 77
    Points
    77
    Par défaut
    J'avoue que j'y avais absolument pas pensé lol !

    Travail de goret mais pour le coup très efficace

    Bon weekend !

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 145
    Points : 77
    Points
    77
    Par défaut
    En fait ça marche toujours pas...

    Si le reboot a réactivé le cron impossible de lancer un fichier php ou sh...

    Si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    35 16 * * * echo "test".$(date +\%Y\%m\%d) > /home/www/qualif/htdocs/test_dev/cron.txt
    J'ai bien un fichier cron.txt qui se crée avec la date dedans.

    Par contre si je veux lancer un fichier ça fonctionne pas...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    35 16 * * * /home/www/qualif/htdocs/test_dev/test.sh
    Mon test.sh est ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "test".$(date +\%Y\%m\%d) > /home/www/qualif/htdocs/test_dev/cron.txt
    Rien ne se passe...

    J'en peux plus, j'ai jamais rencontré de souci avec un cron et la c'est l'enchainement...

    Par contre si je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    35 16 * * * /home/www/qualif/htdocs/test_dev/test.sh 1>/home/www/qualif/htdocs/test_dev/log.txt
    Ca m'écrit bien test avec la date dans log.txt... mais pas dans cron.txt


  10. #10
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    tu as laisser les \ devant % dans le script .... c'est que pour le crontab

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 145
    Points : 77
    Points
    77
    Par défaut
    Bonjour frp31

    Merci de ta réponse, en fait meme sans les \ ça ne fonctionne pas...

    En fait je comprends pas pourquoi, si je lance un script depuis le répertoire ça marche : ./test.sh

    Si je me mets dans un autre répertoire et que je veux lancer le script avec tout le chemin /home/www/qualif/... /test.sh ça ne fonctionne pas.

    Dans ma CRON y a le chemin entier aussi, j'arrive pas à comprendre pourquoi en écrivant tout le chemin ça fonctionne pas, ça devrait marcher...

  12. #12
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Et quel est le résultat de ls -l /home/www/qualif/htdocs/test_dev/test.sh ?

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 145
    Points : 77
    Points
    77
    Par défaut
    Le résultat est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -rwxr-xr-x qualif users 75 2014-08-04 11:53 /home/www/qualif/htdocs/test_dev/test.sh
    La je suis avec root, donc la crontab de root mais je peux lancer un fichier qui appartient à un autre user non ?

  14. #14
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par Tonii Voir le message
    En fait je comprends pas pourquoi, si je lance un script depuis le répertoire ça marche : ./test.sh

    Si je me mets dans un autre répertoire et que je veux lancer le script avec tout le chemin /home/www/qualif/... /test.sh ça ne fonctionne pas.

    Dans ma CRON y a le chemin entier aussi, j'arrive pas à comprendre pourquoi en écrivant tout le chemin ça fonctionne pas, ça devrait marcher...
    Peux-tu être un poil plus précis sur "ça marche" "ça ne fonctionne pas" et "ça devrait marcher"?

    Y a-t-il un message d'erreur? Que se passe-t-il précisément?

    Les 2 commandes suivantes sont quasiment équivalentes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cd /home/www/qualif/htdocs/test_dev ; ./test.sh
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cd ailleurs; /home/www/qualif/htdocs/test_dev/test.sh
    La seule différence (pour moi) concerne les fichiers (lus ou écrits par la commande) dont le nom est relatif (au répertoire courant), comme, par exemple, date > foo.log.

    Citation Envoyé par Tonii Voir le message
    Le résultat est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -rwxr-xr-x qualif users 75 2014-08-04 11:53 /home/www/qualif/htdocs/test_dev/test.sh
    Donc le fichier est bien exécutable par n'importe qui.

    La je suis avec root, donc la crontab de root mais je peux lancer un fichier qui appartient à un autre user non ?
    Je ne suis pas spécialiste de la crontab, mais oui, puisqu'il est exécutable par tous.

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 145
    Points : 77
    Points
    77
    Par défaut
    Bonjour frp31

    Merci pour ton aide ! En fait tout fonctionne maintenant. A la base je voulais exécuter un script php, alors j'ai supprimer le chemin bash au début et dans la crontab j'ai mis * * * * * php5 chemin/fichier.php

    Tout fonctionne. En tout cas une chose est sûre au début la crontab ne fonctionnait plus et le reboot du serveur la relancée.

    Après pourquoi mon test.sh ne s'exécutait pas j'en sais rien...

    Merci en tout cas !
    Bonne journée.

  16. #16
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    ah oui ok

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Impossible de lancer une application graphique
    Par Arnaud F. dans le forum Debian
    Réponses: 3
    Dernier message: 28/11/2006, 11h58
  2. [VBA-W] Impossible de lancer une macro via AddIns.Add
    Par massif dans le forum VBA Word
    Réponses: 1
    Dernier message: 06/09/2006, 15h52
  3. Shell - Impossible de lancer une commande
    Par marocleverness dans le forum Linux
    Réponses: 2
    Dernier message: 05/06/2006, 10h14
  4. Problème pour lancer une tâche de fond
    Par jessie dans le forum Administration système
    Réponses: 3
    Dernier message: 12/02/2006, 19h50
  5. [Eclipse 3.1] Impossible de lancer une application graphique
    Par pugnator dans le forum Eclipse Java
    Réponses: 10
    Dernier message: 11/09/2005, 12h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo