Cron? Launchd? ICal ??
Si c'est le cas, comment?
Pour référence, les 3 options fonctionneraient. L'option iCal a cependant plus de limites que les autres.
(Il existe des GUI pour éditer cron et launchd comme mentionné dans d'autres réponses)
Cron est le plus direct et bien connu et il existe de nombreux didacticiels disponibles. Coles Notes consiste à ajouter la dernière ligne de bas à votre crontab (soit en éditant /etc/crontab
ou en utilisant crontab
sur la ligne de commande):
MM HH DD MM WKD -- Minutes, Hour, Day, Month, Weekday (eg. Sun, Mon) MM HH * * * USERNAME /PATH/TO/SCRIPT 00 3 * * * chealion /myscript.sh "Runs at 03:00 every day"
Dans Mac OS X, cron
a effectivement été remplacé par launchd
mais launchd
est compatible avec cron
ce qui signifie que vous pouvez toujours utiliser cron
mais il est effectivement launchd
faisant tout le travail.
Si vous souhaitez utiliser launchd
vous voudrez également consulter d'autres questions ici sur Super User (par exemple, comment puis-je exécuter une commande launchd en tant que root? ) Sur l'endroit où vous souhaitez enregistrer votre fichier de configuration (le fichier plist ) Comme quand il s'exécute dépend de quel répertoire il est stocké et comment il est chargé (par exemple, si vous avez utilisé sudo ou non) – semblable à cron.
Un exemple exécute quotidiennement lancer un programme (assurez-vous que le fichier et l'étiquette sont identiques – moins le nom de l'étiquette) – ce script est exécuté tous les jours à minuit minuit:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>local.IDENTIFIER_HERE.SOMETHING</string> <key>KeepAlive</key> <false/> <key>RunAtLoad</key> <false/> <key>UserName</key> <string>USERNAME HERE</string> <key>Program</key> <string>/PATH/TO/SCRIPT</string> <key>ProgramArguments</key> <array> <string>Argument_1</string> <string>Argument_2</string> </array> <key>StartCalendarInterval</key> <dict> <key>Hour</key> <integer>00</integer> <key>Minute</key> <integer>03</integer> </dict> </dict> </plist>
Il est également intéressant de noter que les tâches lancées s'ils étaient prévus lorsque l'ordinateur est endormi ou éteint, ils fonctionneront lorsque l'ordinateur sera à nouveau disponible (l'allumer ou le réveiller) – mais une seule fois, peu importe combien de jours cela pourrait avoir Été. Edit: Je viens d'être sur un document Apple qui a déclaré que si la machine était éteinte, vous allez perdre tout événement de lancement durant ce temps (votre script ne démarre pas lors du démarrage) (le script de lancement de Sleep ne démarre pas)
Une autre option est d'utiliser " at " (cochez la page de manuel avec "man at"). Le script peut se reprogrammer par exemple:
echo "sh $0 $@" | at `date +%H:%M` tomorrow
(Utilisez "+ 10 minutes" au lieu de "demain" pour l'exécuter toutes les 10 minutes, pour arrêter la planification, faites simplement "at -l" pour répertorier les identifiants de travail programmés, puis "at -r id " pour supprimer le travail)
Vous devrez peut-être démarrer le démon correspondant (atrun) avec (voir https://superuser.com/a/43680 ):
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist
Avantages: réparations rapides, aucun accès sudo / root requis, facile à faire des schémas de planification compliqués Inconvénients: pas une méthode de planification standard pour OS X (qui est lancé)
LaunchControl est une autre interface graphique pour launchd / launchctl. Alors que les alternatives mentionnées par d'autres sont parfaitement capables de lancer un script quotidiennement, avec LaunchControl, vous pouvez configurer des horaires complexes (comme «une fois tous les jours de la semaine, les week-ends toutes les heures entre 2 heures et 18 heures»). Il est également (AFAIK) le seul outil qui valide effectivement le travail. Si un travail ne fonctionne pas comme prévu, cela vous montrera pourquoi.
Il est gratuit d'essayer aussi longtemps que vous le souhaitez.
CronniX est un bon interface de GUI pour la planification de cron jobs sur le Mac … Assez si vous ne voulez pas aller dans la documentation de cron.
cron
si vous google pour cela. Cela dépend de ce que vous voulez: les scripts iCal ne seront exécutés que si vous êtes connecté, cron
exécute le script sans être connecté. Je ne sais pas si iCal exécute un script si le Mac était tourné au moment où le script devrait Ont été exécutés. cron
fait cela.
Une mise à jour: vous pouvez consulter certaines applications dans le Mac OS X App Store qui font ceci:
LaunchD Task Scheduler
Plisterine
Lingon semble également être disponible, selon le système d'exploitation que vous utilisez.
J'utilise toujours Lingon pour cela, mais il semble que ce soit hors de développement. Vous pourriez essayer Crontooie , mais je ne l'ai jamais utilisé personnellement. Ou simplement modifier le fichier crontab dans le terminal.
sp@mactop ~ $ crontab -l */5 * * * * /usr/local/bin/cinco.sh sp@mactop ~ $ cat /usr/local/bin/cinco.sh #!/bin/sh ....cut.... sp@mactop ~ $
… quelles que soient les lignes de commande que vous lancez pour "…. coup …" sera exécuté toutes les cinq minutes.
30 ans de progrès, et 'cron' est toujours mon planificateur préféré.
-C
Si vous voulez essayer GRATUITEMENT, je suggère Task Till Dawn
Voici un utilitaire simple et gratuit pour générer XML XML:
http://www.gieson.com/Library/projects/utilities/launcha/
Avec cet utilitaire, il n'est pas nécessaire d'installer un programme, enregistrez simplement les résultats dans votre dossier Library / LaunchAgents.