Cron? Lancé? iCal ??
Si c'est le cas, comment?
Cron? Lancé? iCal ??
Si c'est le cas, comment?
Réponses:
Pour référence, les 3 options fonctionneraient. L'option iCal a cependant plus de limitations que les autres.
(Il y a des interfaces graphiques pour éditer cron et launchd comme mentionné dans d'autres réponses)
Cron est le plus simple et le plus connu et de nombreux tutoriels sont disponibles. Coles Notes consiste à ajouter la dernière ligne d'en bas à votre crontab (soit en la modifiant, /etc/crontab
soit en utilisant crontab
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"
Sous Mac OS X, il cron
a été remplacé par le précédent launchd
mais launchd
est compatible avec les versions antérieures, cron
ce qui signifie que vous pouvez toujours l'utiliser, cron
mais que launchd
tout le travail est fait.
Si vous voulez utiliser, launchd
vous voudrez également vérifier d’autres questions ici sur le super utilisateur: (par exemple, comment exécuter une commande launchd en tant que root? ) Pour savoir où vous voulez enregistrer votre fichier de configuration (le fichier plist) comme quand il fonctionne dépend dans quel répertoire il est stocké et comment il est chargé (par exemple si vous avez utilisé sudo ou non) - similaire à cron.
Un exemple de plist lancé quotidiennement (assurez-vous que le fichier et l'étiquette sont identiques - moins le plist de l'étiquette) suit - ce script est exécuté tous les jours à 3 heures et demie:
<?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 launchd si elles étaient planifiées lorsque l'ordinateur est endormi ou éteint, elles s'exécuteront lorsque l'ordinateur redeviendra disponible (en l'allumant ou en le réveillant) - bien qu'une seule fois, peu importe combien de jours il peut avoir. été. Edit: Je viens de lire un document Apple qui indique que si la machine est hors tension, vous perdrez tous les événements de lancement pendant cette période (votre script ne se lancera pas au démarrage), (la veille le lance lorsque vous vous réveillez).
Une autre option consiste à utiliser " à " (consultez la page de manuel avec "man à"). Le script peut se replanifier avec 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, il suffit de faire "en -l" pour répertorier les ID de travail planifié, puis "en -r id " pour supprimer le travail)
Vous devrez peut-être d'abord 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: solution rapide, aucun accès sudo / root requis, modèles de planification compliqués faciles à effectuer Inconvénient: méthode de planification non standard pour OS X (launchd)
launchd
est la voie à suivre sous OS X.
crontab -e
, il vous déposera dans un éditeur de texte basé sur un terminal sur un fichier qui deviendra votre crontab personnel lorsque vous l'enregistrez.
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 au quotidien, avec LaunchControl, vous pouvez configurer des planifications complexes (comme "une fois par jour, chaque week-end, toutes les heures entre 14h00 et 20h00"). En outre, il est (AFAIK) le seul outil qui valide réellement le travail. Si un travail ne fonctionne pas comme prévu, il vous montrera pourquoi.
C'est gratuit d'essayer aussi longtemps que vous le souhaitez.
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 a été désactivé au moment où il aurait dû l'être. été exécuté. cron
fait cela.
Une mise à jour: vous pouvez consulter certaines applications dans le Mac OS X App Store qui font ceci:
Lingon semble également être disponible, en fonction du système d'exploitation que vous utilisez.
Si vous voulez essayer le GRATUIT, je vous suggérerais Task Till Dawn
Voici un utilitaire simple et gratuit pour générer du XML plist:
http://www.gieson.com/Library/projects/utilities/launcha/
Avec cet util, il n’est pas nécessaire d’installer un programme, il suffit d’enregistrer les résultats dans votre dossier Library / LaunchAgents.
RunAtStart
est défini sur false (à moins que vous ne le vouliez). J'ai passé une heure à comprendre pourquoi mon Finder gèlerait et empêcherait le chargement du bureau au démarrage. La désactivation RunAtStart
n'interfère pas avec l'horaire fixe.
J'utilise toujours Lingon pour cela, mais on dirait que c'est en développement. Vous pouvez essayer Crontooie , mais je ne l'ai jamais utilisé personnellement. Ou simplement éditer 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 ~ $
... quelle que soit la ligne de commande utilisée pour ".... couper ....", elle sera exécutée toutes les cinq minutes.
30 ans de progrès et «cron» est toujours mon ordonnanceur préféré.
-C
Si un événement de calendrier répond à vos besoins, l'application Automator intégrée vous permet également de créer des alarmes de calendrier déclenchées par des événements de calendrier. Vous pouvez utiliser certaines des actions intégrées basées sur l'interface utilisateur pour faire ce que vous voulez, ou vous pouvez également le laisser exécuter une application ou un script personnalisé AppleScript, JavaScript ou shell.