Comment exécuter une tâche cron sur un Mac?

12

Comment puis-je faire en sorte que mon Mac (exécutant le système d'exploitation le plus récent) effectue automatiquement une tâche une fois par jour? Par exemple, j'aimerais qu'il télécharge automatiquement une copie de ce manuel de géométrie algébrique open source une fois par jour. J'ai le sentiment qu'une combinaison de wget et cron devrait fonctionner, mais, après avoir googlé et lu la documentation de cron, je n'arrivais tout simplement pas à le faire fonctionner correctement.

David Zureick-Brown
la source
2
Je vous suggère de ne pas utiliser Crontab et d'apprendre à utiliser Launchd comme déjà suggéré.
Martin Marconcini

Réponses:

9

Je pense que sous OS X, vous devriez utiliser launchctlpour les "tâches cron".
Mais sinon, votre tâche devrait être facile à faire avec un cronjob
sudo crontab -e
55 23 * * * wget http://www.math.columbia.edu/algebraic_geometry/stacks-git/book.pdf

Cela devrait fonctionner tous les jours à 23h55

Mise à jour

Vous devez spécifier l'emplacement de sortie de WGET avec -O /path/to/file

deiga
la source
2
Si vous utilisez launchd, consultez apple.stackexchange.com/questions/3030/…
2
Vous n'avez pas nécessairement besoin de sudo. Les utilisateurs individuels peuvent avoir leurs propres crontabs
Doug Harris
6

Le démon cron peut être activé par un simple:

sudo touch /private/etc/crontab

Ensuite, il est conseillé d'entrer le chemin complet de votre / usr / local / bin / wget (ou partout où il vit). Cron ne connaît pas $ PATH de votre utilisateur. J'espère que cela aide.


la source
5

Vous pouvez utiliser Cronnix qui est une interface graphique gratuite pour cron:

http://www.macupdate.com/app/mac/7486/cronnix/

nuc
la source
1
cronnix a été officiellement interrompu en amont. Il peut cesser de fonctionner correctement (ou pas du tout) dans les versions récentes de macOS.
Andrii Abramov
4

Si vous trouvez la syntaxe de ligne de commande (etc.) trop confuse / mystérieuse, vous pouvez vous intéresser à l'outil GUI pour afficher / modifier / créer ces travaux.

Dans le passé, j'ai utilisé Lingon , qui est maintenant disponible sur le Mac App Store. Je n'ai pas besoin de l'utiliser très souvent, mais c'est très utile quand je le fais!

robsoft
la source
1

Une solution plus élégante (que cron) consiste à utiliser les notifications iCal + Applescript.

Tout d'abord, lancez AppleScript Editor (situé sous / Application / Utilities) et collez le code suivant:

set the destination_file to ("~/Downloads/book.pdf")

set the contentLink to "http://www.math.columbia.edu/algebraic_geometry/stacks-git/book.pdf"

tell application "URL Access Scripting"
    download contentLink to destination_file replacing yes
end tell

Enregistrez le script et quittez l'éditeur AppleScript.

Ouvrez votre iCal et créez un nouvel événement pour aujourd'hui, en réglant l'heure que vous voulez, sélectionnez "répéter: Chaque jour" et comme alarme "Exécuter le script" et sélectionnez votre applescript.

Si vous souhaitez être averti pour chaque téléchargement, vous pouvez ajouter une autre alarme avec un "Message avec son", "à la date".

nuc
la source
1

Je recommande les macaronis . Son avantage est que lorsque vous définissez un travail pour qu'il s'exécute une fois par jour, il s'exécute chaque fois que votre ordinateur est allumé, quelle que soit l'heure. Vous ne manquerez donc pas de travail car l'ordinateur était éteint à l'heure indiquée.

Macaroni est un outil qui gère la maintenance régulière de Mac OS X, y compris le processus de privilèges de réparation de Mac OS X ainsi que la maintenance de style Unix. Vous pourriez le faire vous-même, mais n'avez-vous pas des choses plus intéressantes à faire avec votre temps?

amorfis
la source