Forum Programmation.shell crontab et cron

Posté par  .
Étiquettes : aucune
0
24
fév.
2006
Slt a tous

J'ai reussi enfin a paramétrer ma crontab avec cygwin.

J'ai tuer cron puis relancer afin de prendre en compte mes modifs, mais cela ne fonctionne tjrs pas alors que mon script lui fonctionne bien quand je le lance d'une console.

Quelqu'un peut me tuyauter sur cela.

Merci d'avance.
  • # Question bete..

    Posté par  . Évalué à 0.

    Ton script est il bien executable ?? (ie avec les droits d'execution)
    Sinon un chmod +x devrait resoudre definitivement le pb.
  • # variable d'environnement ou chemin d'accès incorrect

    Posté par  . Évalué à 2.

    Comment as-tu renseigné ta crontab? Tu as mis le chemin d'accès absolu?

    Peut-être que certaines variables d'environnement ne sont pas initialisées ....
    • [^] # Re: variable d'environnement ou chemin d'accès incorrect

      Posté par  . Évalué à 0.

      #!/bin/sh

      chmod +x

      cp -r /home/test /home/test1

      Voilà mon script. Je ne pense pas me tromper ds la table ou j'ai mis
      ceci

      10 12 * * * /home/script1.sh

      Le script se trouve bien ds ce rep.

      Maintenant je ne comprends pas bien ce qui se passe.

      Je modifis j'enregistre je sors de la table je relance cron.exe et cela ne marche tjrs pas.

      Quelqu'un peut me dire pourquoi
      • [^] # Re: variable d'environnement ou chemin d'accès incorrect

        Posté par  . Évalué à 2.

        Ca veut dire quoi "cela ne marche tjrs pas" ?

        Une erreur lors de l'exécuion de la commande cron.exe ?

        essaie ça en cron:

        10 12 * * * echo "coucou" >/tmp.test.log
        (remplace 10 12 par les bons paramètres, bien sur) et va voir si le fichier /tmp/test.log est bien créé.
      • [^] # Re: variable d'environnement ou chemin d'accès incorrect

        Posté par  . Évalué à 1.

        Il faut se méfier de la variable $PATH avec cron, il est toujours bon de déclarer la variable $PATH à chaque début de script shell lancé par cron.

        Si ton script fonctionne bien et qu'il a les bons droits d'exécution, cron devrait le lancer sans problème.

        Pour prendre en compte les modification, tu n'as pas besoin de relancer à la main le démon, tu peux procéder de deux manières pour ajouter un job à cron.

        1) Tu écris dans un fichier les jobs à plannifier:

        exemple ici:

        10 12 * * * /home/script1.sh

        Tu enregistres le fichier avec le nom que tu veux, par exemple crontab.jobs, puis tu lances la commande: crontab crontab.jobs

        Tu vérifies ensuite avec un crontab -l que le job est bien pris en compte.

        2) crontab -e et tu ajoutes les mêmes lignes, selon les environnement un éditeur de texte sera lancé ça peut être vi, nano etc... une fois tes infos ajoutées, tu enregistres le fichier et tu sors de l'éditeur, les modifications seront bien prises en compte, pareil tu vérifies avec un crontab -l...

        Ces manip sont celles que j'utilise avec Unix/Linux, ça doit à mon avis très bien marché sous cygwin :-)
        • [^] # Re: variable d'environnement ou chemin d'accès incorrect

          Posté par  . Évalué à 0.

          Mon script est actuellement cela

          #!/bin/sh
          $PATH

          chmod +x

          cp -r /home/test /home/test1

          J'ai suivi ton conseil et je suis passé par un fichier crontab.jobs

          Je suis en phase de test, mais mon script est il bon
          • [^] # Re: variable d'environnement ou chemin d'accès incorrect

            Posté par  . Évalué à 1.

            Heu, je crois qu'il faudrais que tu lises des tuto sur la programmation en Shell Unix, une variable se déclare de la manière suivante:

            VARIABLE=valeur

            ou bien

            export VARIABLE=valeur

            Donc pour ton PATH:

            PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11

            Ton script est bon, sauf pour la variable mais je viens de t'en donner un exemple.

            Une fois le fichier crontab.jobs renseigné, --> crontab crontab.jobs et après un crontab -l pour vérifier que c'est OK
          • [^] # Re: variable d'environnement ou chemin d'accès incorrect

            Posté par  . Évalué à 2.

            Non non non !!! le chmod ne doit pas se faire dans le script!
            le chmod se fair en ligne de commande APRES avoir éditer le script.
            Dans le répertoire qui contient ton script tu fais chmod u+x script

            ( le $PATH ne sert a rien, il doit même te retourner une erreur).

            Une bonne habitude a avoir quand on exécute un script via cron est de générer un fichier de logs. Ca permet de comprendre beaucoup de choses.
      • [^] # Re: variable d'environnement ou chemin d'accès incorrect

        Posté par  . Évalué à 2.

        Bon, en fait, je crois bien que pour ce que tu veux faire, utiliser cygwin est une abbération (d'ailleurs, je crois bien avoir averti dans un précédent commentaire lors d'un précédent message, bref.).
        Alors, on reprend depuis le début :
        - si tu tiens vraiment à faire ça sous cygwin :
        Dans une console, tu tapes :
        $ chmod u+x script1.sh
        Évidement, tu te seras placé à l'endroit de l'arborescence où se situe le fichier nommé script1.sh.

        - Si tu veux abandonner cygwin au profit d'une solution plus simple
        Tu rédiges un script nommé sauve.bat (le bloc note est très bien pour ça) dans lequel tu mets :

        xcopy /e /s [chemin_source]\*.* [chemin_destination]

        En remplaçant [chemin_source] et [chemin_destination] par les valeurs renseignées dans la barre d'adresse de ton explorateur.
        Ensuite, tu utilises le planificateur de tâches de windows, pour lui dire que tel(s) jour(s) à telle(s) heure(s) il doit lancer le script nommé sauve.bat.
        Avec ça, ça doit marcher.
        • [^] # Re: variable d'environnement ou chemin d'accès incorrect

          Posté par  . Évalué à 2.

          Bon, en fait, je crois bien que pour ce que tu veux faire, utiliser cygwin est une abbération

          Pas forcémeent, ça lui permet d'apprendre (et aparamment ça lui donne envie d'installer linux).

          Mais je pense qu'il est un peu jeune et a un peu de mal à s'exprimer.
          • [^] # Re: variable d'environnement ou chemin d'accès incorrect

            Posté par  . Évalué à 0.

            je confirme je suis jeune sous linux
          • [^] # Re: variable d'environnement ou chemin d'accès incorrect

            Posté par  . Évalué à 2.

            Bon, ok, sorti de son contexte, et surtout prise au pied de la lettre, ma phrase peut être mal interprétée.
            Tout ce que je voulais dire, c'est qu'installer cygwin uniquement pour copier un répertoire d'un point A à un point B à heure fixe, c'est un peu prendre un char pour écraser une puce.
            A aucun moment je n'ai voulu dire que c'était une mauvaise idée d'utiliser cygwin, je voulais juste préciser ce point.
            Après, si c'est juste "un exercice de style" pour apprendre le shell, et tout ce qui gravite autour de notre os favori, tant mieux !
            Après tout, y'en a bien qui ont codé un compilateur C en bash....

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.