Installation d'un cron avec SSH

Bonjour,

J'avais réussi à installer un cron partir de Terminal après y avoir passé deux jours en suivant la procédure indiquée à la page https://docs.moodle.org/3x/fr/Cron
Voici la commande que j'avais entrée
*/10 * * * * wget -q -O /root/moodle/cron.log http://www.monsite/admin/cron.php?password=monmotdepasse

J'ai malheureusement voulu modifier le script pour écourter la fréquence des sauvegardes, et depuis, quand je tape « crontab -i » pour vérifier voici ce que j'obtiens :
crontab: usage error: unrecognized option
usage: crontab [-u user] file
crontab [-u user] { -e | -l | -r }
J'ai bien sûr essayé de recommencer la procédure depuis le début, mais le problème demeure.

À ce stade, je me demande s'il n'y aurait pas un moyen de réinitialiser Terminal ou le shell, parce que même après avoir suprimé la ligne de commande à l'aide crontab -e, j'ai toujours le même message d'erreur.
crontab: usage error: unrecognized option
usage: crontab [-u user] file
crontab [-u user] { -e | -l | -r }

En tant que néophite je demande votre indulgence face à mon ignorance, mais surtout des conseils pour trouver une solution.

Merci d'avance si vous pouvez m'aider.
Configuration: Mac OS X
Firefox 3.0.6

19 réponses

  • Votes
  • Date
  • Date décroissante
Résumé de la discussion

Une erreur crontab: usage error: unrecognized option apparaît après avoir tenté de modifier la fréquence d’exécution d’un cron, et l’option -i n’est pas reconnue. Des réponses recommandent d’utiliser crontab -e pour éditer, crontab -l pour vérifier, et crontab -r pour supprimer, en évitant l’option inexistante -i. Certaines propositions suggèrent aussi de créer un fichier texte, par exemple crontab.txt, puis d’exécuter crontab crontab.txt pour charger la configuration et vérifier via crontab -l. En parallèle, il est utile de s’assurer que la ligne cron est correctement formatée et que les chemins des scripts ou des outils accessibles au système, afin d’éviter de nouvelles erreurs.

Bobot (l’IA à votre service)
  1. Bonjour,

    Pourquoi -i ? C'est une option qui n'existe pas ! -l (l comme Laure) peut être ?

    Personnelement, je trouve le -e pas pratique.
    Je te conseil d'éditer un fichier texte genre crontab.txt
    puis d'executer crontab crontab.txt

    crontab -l pour vérifier.

    ---

    plus d'aide avec
    man 1 crontab
    man 8 crontab
    1. Merci de ta réponse.
      Si je comprends bien, je dois coller la commande */10 * * * * wget -q -O /root/moodle/cron.log http://www.portail-eip.org/admin/cron.php?password=utopie dans un ficher texte que je nomme crontab.
      Mais après ? Je suis novice et je ne sais pas comment procéder pour executer crontab crontab.txt
      Peux-tu m'aider ?
    2. @cifedhoppour éviter la confusion, nomme le crontab.txt

      oui tu copie la ligne

      */10 * * * * wget -q -O /root/moodle/cron.log http://www.portail-eip.org/admin/cron.php?password=pass
      dans ce fichier
      et tu execute
      crontab crontab.txt
      en ligne de commande dans le repertoire où est le fichier.

      ps :
      enleve ton mot de passe du message ça sera plus sur !
    3. @TLaMerci,
      Je viens d'essayer, voici ce qui apparait
      "/Users/monnom/Desktop/crontab.txt":0: bad minute
      crontab: errors in crontab file, can't install
      Sais-tu à quoi ça correspond ?
  2. avec quoi tu édites ton fichier texte ?

    sur le mac d'un ami je n'ai pas d'erreur :

    00:33:50 ami@imac-g5 ~
    cat >crontab.txt
    */10 * * * * wget -q -O /root/moodle/cron.log http://www.portail-eip.org/admin/cron.php?password=pass
    Ctrl-D pour quitter la création via cat
    00:34:03 ami@imac-g5 ~
    crontab crontab.txt
    00:34:07 ami@imac-g5 ~
    crontab -l
    */10 * * * * wget -q -O /root/moodle/cron.log http://www.portail-eip.org/admin/cron.php?password=pass
    1. J'ai utilisé Textdit

      J'ai recommencé en écrivant cat puis en glissant mon fichier crontab.txt (pour le chemin vers le fichier) puis j'ai quitté. Voilà ce qui s'affiche
      cat /Users/monnom/Desktop/crontab.txt
      {\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf430
      {\fonttbl\f0\fnil\fcharset0 Cambria;}
      {\colortbl;\red255\green255\blue255;}
      \margl1440\margr1440\vieww9000\viewh8400\viewkind0
      \deftab720
      \pard\pardeftab720\ri-46\sl320\sa160

      \f0\fs22 \cf0 */10 * * * * wget -q -O /root/moodle/cron.log http://www.portail-eip.org/admin/cron.php?password=monmotdepasse}veronique:~ monnom$ logout

      J'ai pensé que mon problème était réglé, mais en vérifiant avec crontab -i, j'obtiens
      -bash: controltab: command not found

      As-tu encore la patience de m'aider ?
    2. @cifedhopton fichier crontab.txt est enregistré au format rtf -> pas bon.

      fait dans le terminal :
      rm /Users/monnom/Desktop/crontab.txt (effacement du fichier)
      touch /Users/monnom/Desktop/crontab.txt (création fichier vide)

      sur ton bureau ouvre le document crontab.txt,
      normalement textEdit se lance
      colle ta ligne */10 * * * * wget -q -O /root/moodle/cron.log http://www.portail-eip.org/admin/cron.php?password=monmotdep­asse
      fait enregistrer sous, normalement tu doit pouvoir enregistrer au format occidental qqchose

      il faut absolument que la commande cat crontab.txt t'affiche que:
      */10 * * * * wget -q -O /root/moodle/cron.log http://www.portail-eip.org/admin/cron.php?password=monmotdep­asse
  3. Bonjour,

    J'ai un souci avec l'extension txt.

    Une fois que j'ai tapé rm /Users/monnom/Desktop/crontab.txt (Là j'ai validé en tapant enter), puis
    touch /Users/monnom/Desktop/crontab.txt.
    J'ai ensuite ouvert le fichier crontab.txt qui était effectivement vide et y ai collé la ligne */10 * * * * wget -q -O /root/moodle/cron.log http://www.portail-eip.org/admin/cron.php?password=monmotdep–asse
    Le problème c'est que je n'ai pas la possibilité de l'enregistrer au format occidental, ni même en format txt. J'ai d'autre options mais pas celles-ci.

    J'ai donc recommencé avec un fichier que j'ai cette fois créé avec Word. Je l'ai enregistré en format txt et ai coché occidental (Mac Os Roman). J'ai ensuite demandé à l'ouvrir avec TextEdit. Quand j'ai enregistré sous, l'option occidental que je n'avais pas est apparue, mais quand j'ai tapé cat crontab.txt, rien n'est apparu sinon mon nom.

    J'ai donc recommencé l'opération pour la troisième fois, mais cette fois-ci, quand j'ai tapé rm /Users/monnom/Desktop/crontab.txt, cela a eu pour effet de mettre le fichier crontab.txt à la poubelle ! J'ai donc recréé un dossier crontab.txt comme précédemment avec Word, mais l'option occidental n'était plus là quand j'ai voulu enregistrer sous...

    Quelle autre application puis-je utiliser pour faire cette manip ?

    Encore merci pour ton aide !
    1. au faite, quand tu tapes wget dans le terminal ça dit quoi ?
  4. Bonjour Véronique,

    observation préliminaires :
    1) je ne sais pas où tu as trouvé /root/moodle/cron.log mais je pense que pour ton mac ça devrait être /dev/null comme indiqué sur https://docs.moodle.org/3x/fr/Cron
    2) la page http://www.portail-eip.org/admin/cron.php n'existe pas, après enquète et essais
    c'est http://www.portail-eip.org/moodle/admin/cron.php?password=tonmotdepasse

    on va faire le crontab.txt via le terminal.

    copie colle les deux lignes ci-dessous dans un terminal
    cat >crontab.txt
    */10 * * * * wget -q -O /dev/null http://www.portail-eip.org/moodle/admin/cron.php?password=monmotdep­asse

    fait Ctrl-D en début de 3éme ligne, pour terminer la commande cat

    puis fait
    crontab crontab.txt


    voila.
    1. Quand je tape wget à l'ouverture de Terminal voici ce que j'obtiens.
      -bash: wget: command not found
      1. pas bon,
        la commande que tu essaie de faire en automatique via cron n'est pas installé !

        il te faut installer en suivant les instructions de :
        1) http://www.darwinports.com/ , clique sur download et suis la procédure
        2) http://www.darwinports.com/ , execute dans un terminal les commandes indiqués

        puis test en executant dans le terminal:
        wget
        tu doit avoir en réponse :
        wget: missing URL
        Usage: wget [OPTION]... [URL]...
      2. @TLaFinalement j'ai réussi à installer DarwinPorts 1.7 téléchargé à partir d'un autre site : https://www.macupdate.com/app/mac/21309/macports

        Par contre après ça se complique. Je suis allée sur le site http://www.darwinports.com/ pour trouver les commandes à exécuter dans Terminal, mais je dois faire quelque chose de travers. Voici ce que j'obtiens:
        veronique:~ monnom$ % cd /opt/local/bin/portslocation/dports/wget
        -bash: fg: %: no such job
        veronique:~ monnom$ % sudo port install wget
        -bash: fg: %: no such job
        veronique:~ monnom$ Password: monmotdepasse
        -bash: Password:: command not found
        veronique:~ monnom$

        Ça te dit quelque chose ?
      3. @cifedhopenleve le %
        le % dans la doc symbolise le prompt
        c'est l'équivalent de ton prompt dans la ligne de commande : veronique:~ monnom$

        chez toi , l'enchainement des commandes doit ressembler à :

        veronique:~ monnom$ cd /opt/local/bin/portslocation/dports/wget
        veronique:/opt/local/bin/portslocation/dports/wget $ sudo port install wget
        Password : saisie ton mot de passe Mac à l'aveugle
        veronique:/opt/local/bin/portslocation/dports/wget$
        wget
        wget: missing URL
        Usage: wget [OPTION]... [URL]...

        Try `wget --help' for more options.


        avec
        - en italique ce que le Mac t'affiche
        - en gras ce que tu saisie au clavier
        - en gras souligné ton mot de passe Mac

        explication :
        1) cd : change directory
        2) sudo : set user and do, change d'utilisateur (le superutilisateur par défaut) et execute
        3) port : commande principale du package darwinports, pour récupérer des fonctionnalités unix|BSD supplémentaire
        4) wget : utilitaire en ligne de commande pour executer des requètes HTTP
    2. Merci mille fois de ta patience ; je suis impressionnée.

      J'ai fait les opérations suivantes mais je ne sais pas si ça va fonctionner. Je te dirai ça dans 10 mn, car j'ai envoyé un message sur l'un des forums pour vérifier.

      J’ai fait cat >crontab.txt , j’ai validé en tapant sur enter
      Puis j’ai collé */10 * * * * wget -q -O /dev/null http://www.portail-eip.org/moodle/admin/cron.php?password=monmotdepasse
      Je suis passée à la ligne suivante en tapant enter
      J’ai fait Ctrl-D puis j’ai validé en tapant sur enter
      J’ai fait crontab crontab.txt puis j’ai validé en tapant sur enter
      Voilà ce que j’ai obtenu

      Last login: Tue Feb 10 17:29:25 on ttys002
      You have new mail.
      veronique:~ monnom$ cat >crontab.txt
      */10 * * * * wget -q -O /dev/null http://www.portail-eip.org/moodle/admin/cron.php?password=monmotdepasse
      veronique:~ monnom$ crontab crontab.txt
      veronique:~ monnom$

      Pour vérifier si la commande était bien entrés j’ai fait controltab –e et voici ce que j’obtiens.
      */10 * * * * wget -q -O /dev/null http://www.portail-eip.org/moodle/admin/cron.php?password=monmotdepasse
      1. c'est très bien, reste à avoir un wget fonctionnel

        petite remarque :
        crontab -e lance un editeur de texte en ligne de commande, en général vi assez déroutant pour le 'novice',
        pour sortir de l'édition via vi tappe Echap:q!Enter

        fait plutot crontab -l pour voir la configuration du cron
    3. Ça va mal, je viens de télécharger run postflight scipt et l'installation a échoué... Je ne peux malheureusement pas joindre de fichier (capture) pour te montrer.
      1. Bonjour, Tla

        Je viens d'essayer ce que tu suggères. J'ai ouvert une nouvelle fenêtre Terminal et j'ai tapé
        cd/opt/local/bin/portslocation/dports/wget
        voici ce que j'obtiens
        veronique:~ monnom$ cd/opt/local/bin/portslocation/dports/wget
        -bash: cd/opt/local/bin/portslocation/dports/wget: No such file or directory

        Impossible d'aller plus loin !

        Désolée de t'ennuyer encore.
        1. il faut un espace après cd !
          cd /opt/local/bin/portslocation/dports/wget
          1. La première fois je l'avais mis, puis je l'ai enlevé pensant que c'était ce qui permettait de supprimer le %.

            Mais je viens d'essayer de nouveau avec l'espace et la réponse est la même
            veronique:~ monnom cd /opt/local/bin/portslocation/dports/wget
            -bash: cd: /opt/local/bin/portslocation/dports/wget: No such file or directory
            veronique:~ monnom$
            1. Bon, ce chemin vers la solution m'apparait compliqué.

              que dit le terminal à la commande suivante ?
              which tclsh
          2. veronique:~ monnom$ tclsh ~/Desktop/moodleCron.tcl monmotdepasse
            http
            www.portail-eip.org
            80
            /moodle/admin/cron.php?password=monmotdepasse
            HTTP/1.1 200 OK
            Date: Fri, 13 Feb 2009 16:40:38 GMT
            Server: Apache/2.2.3 (Debian) PHP/5.2.0-8+etch13 mod_ssl/2.2.3 OpenSSL/0.9.8c JRun/4.0 mod_perl/2.0.2 Perl/v5.8.8
            X-Powered-By: PHP/5.2.0-8+etch13
            Connection: close
            Content-Type: text/plain; charset=utf-8
            Content-Language: fr
            1. Bonjour,

              J'étais tellement contente de voir que le cron était complété correctement que j'ai envoyé le courriel pour que tu vois que tu avais réussi, sans même te dire à quel point tu as été exemplaire pour m'accompagner dans cet exercice tout nouveau pour moi. Merci, merci, merci pour temps que tu as pris à régler mon problème

              Petite question : est ce que lorsque je quitte terminal les tâches sont suspendues ?

              Véronique
              1. c'est pas tout à fait fini !

                le script que tu a récupéré, est l'équivalent d'un wget
                il reste à lancer tous ça par le cron

                1) on déplace le script du Bureau dans ton repertoire utilisateur

                veronique:~ monnom$ mv ~/Desktop/moodleCron.tcl ~/moodleCron.tcl

                2) fabrication du fichier pour le crontab
                attention change monnom et monMotDePasseMoodle

                veronique:~ monnom$ cat >crontab.txt
                */10 * * * * /usr/bin/tclsh /Users/monnom/moodleCron.tcl monMotDePasseMoodle
                Ctrl-D

                4) application du fichier

                veronique:~ monnom$ crontab crontab.txt

                5) vérification

                veronique:~ monnom$ crontab -l
                */10 * * * * /usr/bin/tclsh /Users/monnom/moodleCron.tcl monMotDePasseMoodle

                et là tu peux fermer le terminal

                quand ton Mac sera sous tension, toutes les 10 minutes, le script sera executé
              2. Je n'ai pas reçu ton courriel ...
              3. @TLaJétais entrain de te répondre et ai fait une fausse manœuvre.

                Je te disais donc que ça n'a pas fonctionné et je l'avais obtenu
                veronique:~ monnom$ mv ~/Desktop/moodleCron.tcl ~/moodleCron.tcl
                mv: /Users/monnom/Desktop/moodleCron.tcl: No such file or directory
                veronique:~ monnom$
            2. Je viens de faire ce que tu m'as indiqué, mais ça n'a pas fonctionné...
              J'ai voulu recommencer et là voilà ce que j'obtiens
              veronique:~ monnom$ mv ~/Desktop/moodleCron.tcl ~/moodleCron.tcl
              mv: /Users/veroniquetruchot/Desktop/moodleCron.tcl: No such file or directory
              veronique:~ monnom$
              1. cette commande ne fonctionne qu'une fois,

                teste si elle c'est bien passé avec :

                veronique:~ monnom$ ls -al ~/moodleCron.tcl

                normallement s'affiche des infos sur le fichier (taille, droits ...)

                si tu as ces infos fait les étapes 2,3,4,5

                sinon, décrit moi les messages
            3. Voilà ce que j'ai. Puisje continuer les étapes ?

              Last login: Fri Feb 13 12:25:47 on ttys000
              You have new mail.
              veronique:~ monnom$ mv ~/Desktop/moodleCron.tcl ~/moodleCron.tcl
              mv: /Users/monnom/Desktop/moodleCron.tcl: No such file or directory
              veronique:~ monnom$ ls -al ~/moodleCron.tcl
              -rw-r--r-- 1 monnom monnom 753 13 fév 11:36 /Users/monnom/moodleCron.tcl
              You have new mail in /var/mail/monnom
              veronique:~ monnom$
              1. oui fait les étapes 2,3,4,5
            4. Après la deuxième étape, voici ce qui est indiqué

              veronique:~ monnom$ cat >crontab.txt */10 * * * * /usr/bin/tclsh /Users/monnom/moodleCron.tcl motdepasse
              cat: */10: No such file or directory
              cat: Desktop: Is a directory
              cat: Documents: Is a directory
              cat: Downloads: Is a directory
              cat: Library: Is a directory
              cat: Magazines: Is a directory
              cat: Movies: Is a directory
              cat: Music: Is a directory
              cat: Pictures: Is a directory
              cat: Public: Is a directory
              cat: Sites: Is a directory
              cat: SparkAngels: Is a directory

              Je n'ose pas continuer comme tu m'as dit que certaines opérations ne pouvaient être faites qu'une fois.
              1. faut pas oublier d'appuier sur enter en fin de ligne,
                change bien monnom et motdepasse

                veronique:~ monnom$ cat >crontab.txtEnter
                */10 * * * * /usr/bin/tclsh /Users/monnom/moodleCron.tcl motdepasseEnter
                Ctrl-D
                veronique:~ monnom$
            5. veronique:~ monnom$ cat >crontab.txt
              */10 * * * * /usr/bin/tclsh /Users/monnom/moodleCron.tcl motdepasse
              veronique:~ monnom$ logout

              [Opération terminée]

              veronique:~ monnom$ crontab crontab.txt
              veronique:~ monnom$ crontab -i
              crontab: illegal option -- i
              crontab: usage error: unrecognized option
              usage: crontab [-u user] file
              crontab [-u user] { -e | -l | -r }
              veronique:~ monnom$

              C'est un peu décourageant...

              C'est décourageant...
              1. c'est le même séquencement que ta réponse 12 (cifedhop, le mardi 10 février 2009 à 23:49:42)
              2. @TLaÇa marche pour de bon !!! Je ne sais comment te remercier. Tu es non seulement très bon en programmation mais en plus tu es pédagogue et d'une patience d'ange.

                En retour, si tu as besoin d'un coup de main pour réviser un texte, ça fait partie de mes compétences.

                Mille fois merci !
              3. @cifedhop>En retour, si tu as besoin d'un coup de main pour réviser un texte, ça fait partie de mes compétences.
                Je le note ...

                Bonne continuation dans l'animation de tes sites.

                ps: tu doit pouvoir cloturer ce fil de message, pour le passer en resolu.
            6. On dirait que ça fonctionne ! Je viens de recevoir un message que j'avais posté sur un forum sans appeler lel cron manuellement. Je vais un deuxième essai d'envoi de message pour être sûre t te confirme.