Exécuter un shell script à un moment précis
Pour exécuter un script shell à un moment précis, utilisez launchd
ou cron
.
Programmer des tâches avec launchd
Utilisez
launchd
au lieu decron
pour programmer des tâches. Aveclaunchd
, si une tâche est ignorée, car l’ordinateur est éteint ou que son activité est suspendue, la tâche est ajoutée à la file d’attente jusqu’à ce que l’ordinateur soit à nouveau actif.Pour utiliser
launchd
pour programmer des tâches minutées, utilisez les clésStartCalendarInterval
ouStartInterval
.Pour en savoir plus sur
launchd
, consultez la page man correspondante.
Utiliser cron pour programmer une tâche
Le démon cron
exécute les commandes programmées définies dans des fichiers crontab. Le démon cron
recherche dans le dossier /usr/lib/cron/tabs/ des fichiers crontab nommés d’après des comptes se trouvant dans /etc/passwd, et charge les fichiers dans la mémoire. Le démon cron
recherche également dans le dossier /etc/crontab/ des fichiers crontab, d’un format différent. cron
est ensuite exécuté en boucle toutes les minutes et examine les fichiers crontab en mémoire ; chaque commande est vérifiée afin de décider si elle doit être exécutée dans la minute.
Lorsque des commandes sont exécutées, le résultat est envoyé au propriétaire du ficher crontab ou à l’utilisateur figurant dans la variable d’environnement facultative MAILTO du fichier crontab.
Utilisez l’outil crontab
pour installer, désinstaller ou répertorier les tableaux utilisés pour piloter le démon cron
. Les utilisateurs peuvent posséder leur propre fichier crontab.
Pour configurer votre fichier crontab, utilisez la commande
crontab -e
. Ceci ouvre un fichier crontab vide en mode d’édition vim.Voici un exemple de fichier crontab :
SHELL=/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin
HOME=/var/log
#min hour mday month wday command
30 18 * * 1-5 diskutil repairPermissions /Volumes/MacHD
50 23 * * 0 diskutil repairVolume /Volumes/MacHD
Dans cet exemple, la première entrée répare les autorisations du disque pour le volume MacHD à 18 h 30, du lundi au vendredi :
30 18 * * 1-5 diskutil repairPermissions /Volumes/MacHD
La deuxième entrée planifie une réparation du volume tous les dimanches à 23 h 50 :
50 23 * * 0 diskutil repairVolume /Volumes/MacHD