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 :

Tâche planifié sous linux


Sujet :

Shell et commandes GNU

  1. #1
    Membre du Club
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5
    Par défaut Tâche planifié sous linux
    Bonjour,
    J'aimerai faire d'un script php, une tâche planifié sous Ubuntu.
    Par exemple chaque jour qu'il execute mon script php.
    Aprés documentation j'ai entendu parler de CRON mais j'avoue que je ne comprend pas bien son utilisation.

    Merci de toute l'attention que vous pourrez m'accorder.

    Cordialement.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par défaut
    Pour éditer ton fichier cron, en console, tape simplement

    Pour la syntaxe, man cron
    http://www.linux-kheops.com/doc/man/...crontab.5.html

    Pour une interface visuelle, il y a aussi ceci:
    http://gnome-schedule.sourceforge.net/
    Paquet gnome-schedule chez debian, j'imagine qu'il porte le même nom dans les dépôts ubuntu.

    Et n'oublie pas de spécifier le chemin complet des commandes ou scripts que tu souhaites exécuter.

  3. #3
    Membre chevronné Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Par défaut
    Bonjour,
    Je m'incruste dans la discutions, car je suis confronte au meme pb que jorjguisse...
    J'ai d'ailleurs poste cette aprem un post mais dans la section php (pas tres judicieu d'aialleur :-( ).

    Je voudrais faire un crontab qui lance un fichier php....
    Je pensais a quelques chose comme ca :

    0 1 * * apache2 /home/guigo/exemple.php

    donc je veux pour tous les jours de l'année a 01h00 executer ce fichier php....

    Merci
    Guigo

  4. #4
    Expert éminent

    Avatar de Anomaly
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 376
    Billets dans le blog
    1
    Par défaut
    Pour exécuter un script php en ligne de commande tu utilises la commande "php"

    De plus tu dois préciser le chemin complet de l'exécutable dans le crontab car dedans le $PATH n'est pas valable.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    0 1 * * * /usr/bin/php /home/guigo/exemple.php

  5. #5
    Membre chevronné Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Par défaut
    Super ça, merci bcp.
    Une dernière question, de cette facon mon fichier php va être interpréter sans pb ?

    Merci :-)

  6. #6
    Membre chevronné Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Par défaut
    Bon le mieux est de tester... Je reviens vers vous pour vous donner une reponse finale....

  7. #7
    Membre chevronné Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Par défaut
    Re,
    Alors j'ai avance un peu mais ca ne marche tjs pas....;
    Premierement un lien sympa pour debuter :
    http://mirmodynamics.com/post/2005/0...-du-cli-en-php

    Ma commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    0 1  * * * /usr/bin/php -f /var/www/vhosts/pharmacontact.fr/httpdocs/test/test.php
    J'ai teste en ssh directement pas de pb la cmd fct directement.
    Quand j'edite crontab -e pas de pb la cmd est bien la avec les bon parametres...

    Par contre quand je fait un restrat ou stop/start cron j'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cron: can't lock /var/run/crond.pid, otherpid may be 2396: Resource temporarily unavailable
    Merci,
    Guigo

  8. #8
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par défaut
    Tu ne dois pas redémarrer crond lorsque tu édites tes tâches avec crontab -e.

  9. #9
    Membre chevronné Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Par défaut
    dans etc/init.d j'ai que cron pas crond
    et c'est justement quand j'essaye de redemarer cron que j'ai une erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    cron restart
    ou 
    cron stop / cron restart

  10. #10
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par défaut
    le fichier /etc/init.d/cron est un script qui démarre, arrête ou relance crond.

    Quand tu fais une modification dans crontab, il ne faut pas redémarrer crond.

    Par contre le message d'erreur suggère qu'il y a conflit de pid pour crond. Il faut tirer ça au clair. Que donne:

  11. #11
    Membre chevronné Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Par défaut
    Cool, merci de du coup de patte.

    La cmd donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     PID TTY          TIME CMD
     2396 ?        00:00:06 cron

  12. #12
    Membre chevronné Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Par défaut
    Je viens de tenter un reboot.... Rien :-(

  13. #13
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par défaut
    Tu n'as qu'un seul PID pour cron. C'est ok.

    Mais, une fois encore, tu n'as pas besoin de redémarrer le deamon cron après une modification de crontab.

    Quel est ton problème finalement? Ton script ne s'exécute pas?

    Si tu cherches à lancer un script php, tu dois avoir soit la version php-cli, soit un serveur http comme apache mais alors ta commande plus haut n'est pas correcte. Il te faut utiliser wget ou curl.

  14. #14
    Membre chevronné Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Par défaut
    Slt Ripat,
    j'ai suivit les conseils de ce lien :
    http://mirmodynamics.com/post/2005/0...-du-cli-en-php

    J'utilise php-cli du coup, qui a l'air d'etre installe correctement....(witch php).

    Ma commande ne te semble pas bonne?

  15. #15
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par défaut
    Si tu as php-cli, oui, elle semble bonne mais, quel est le problème?

    Si ton cron ne s'exécute pas tu peux envoyer le message d'erreur éventuel vers un fichier:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    * * * * * commande fichier.php 2>/tmp/err_cron

  16. #16
    Membre chevronné Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Par défaut
    Je ne pense meme pas que la tacche cron se lance.
    J'ai l'impression que le processus cron est occupé a autre chose.
    Mon message d'erreur quand je tente un restart est tjs le meme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    cron: can't lock /var/run/crond.pid, otherpid may be 2396: Resource temporarily unavailable
    Je teste dans la foulé ta technique pour visualiser l'erreur (faut il encore que cron lance la cmd....).
    Je te tiens au jus

  17. #17
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par défaut
    Citation Envoyé par guigo Voir le message
    (faut il encore que cron lance la cmd....).
    Il n'y a aucune raison qu'il ne le fasse pas. En principe l'exécution des tâches cron sont journalisées dans syslog.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     grep -i cron /var/log/syslog

  18. #18
    Membre chevronné Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Par défaut
    Dsl je dois partir en rdv... Je teste tout dans 1/1h30 et te tiens au courent.
    Merci

  19. #19
    Membre chevronné Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Par défaut
    Alors, pour resumer :

    Quand j'edite mon syslog, a priori le cron tab marche bien. Puisque certaines taches sont lancées et executées...

    ex du syslog :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    Nov 24 17:20:02 wpc5111 /USR/SBIN/CRON[14496]: (www-data) CMD ([ -x /usr/lib/cgi-bin/awstats.pl -a -f /etc/awstats/awstats.conf -a -r /var/log/apache/access.log ] && /usr/lib/cgi-bin/awstats.pl -config=awstats -update >/dev/null)
    Nov 24 17:25:02 wpc5111 /USR/SBIN/CRON[14662]: (root) CMD (/opt/psa/admin/sbin/backupmng >/dev/null 2>&1)
    Pour err_cron, j'ai lance dans le shell la cmd que tu m'as donné.... Apres lancement d'une de mes tache cron, quand j'edite err_cron le fichier est vide.


    Mon crontab :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    10,25,40,55     *       *       *       *       /opt/psa/admin/sbin/backupmng >
    0       1       *       *       1       /opt/psa/libexec/modules/watchdog/cp/se
    0       1       *       *       1       /opt/psa/libexec/modules/watchdog/cp/se
    10      1       *       *       *       /opt/psa/libexec/modules/watchdog/cp/cl
    15      1       *       *       *       /opt/psa/libexec/modules/watchdog/cp/pa
    15      1       *       *       1       /opt/psa/libexec/modules/watchdog/cp/pa
    15      1       1       *       *       /opt/psa/libexec/modules/watchdog/cp/pa
    15      1       1       *       *       /opt/psa/libexec/modules/watchdog/cp/pa
    20      1       *       *       *       /opt/psa/libexec/modules/watchdog/cp/cl
    0       3       *       *       7       /opt/psa/libexec/modules/watchdog/cp/cl
    45      17      *       *       *       /usr/bin/php -f /var/www/vhosts/mondomain


    Mon code php a executer (simple test...) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    #!/usr/bin/php
    <?php 
     
    print Txt("hello world !"); 
     
    function Txt($Chaine)
    {
     
    	$File=fopen("../test/test.txt","w+");
    	fwrite($File,$Chaine.";");
    	fclose($File);
     
    }
     
    ?>
    j'ai attribuer les droit 777 au repertoire contenant test.php pour eviter les soucis pour le moment

  20. #20
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 792
    Par défaut
    Montre-nous la ligne de cron de ce que tu veux exécuter. Elle n'apparaît pas complètement dans l'extrait ci-dessus.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ crontab -l | grep php

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Les tâches planifiées sous unix
    Par kamaldev dans le forum Solaris
    Réponses: 1
    Dernier message: 10/02/2009, 14h30
  2. tâche planifiée sous MySQL
    Par DonKnacki dans le forum Requêtes
    Réponses: 3
    Dernier message: 07/03/2008, 16h16
  3. tache planifiée sous linux
    Par bekir.mohamed dans le forum Administration système
    Réponses: 4
    Dernier message: 26/11/2007, 16h46

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