Top Promos Apple Test Apple Antivirus Mac Dock Thunderbolt Sunology Comparatif iPhone Nettoyeur Mac

Articles

Mac

Cron, comment ça marche

Par Coco - Mis à jour le

Les News




Introduction

27/06/03

A l'heure où tous les sites de la communauté Mac ne parlent plus que du G5 et de Panther, laissez moi vous parer d'une unixerie solidement ancrée dans OS X, j'ai nommé cron.

Alors, cron, comme son nom ne l'indique pas, est un système permettant l'execution programmée de commandes. Le mécanisme se base sur un démon éponyme (/usr/sbin/cron) qui lit toutes les minutes des fichiers appelés crontabs dans lesquels sont consignées les commandes a éxécuter. Ainsi tous les réglages se font dans les crontabs.

Avant de nous aventurer dans le fonctionnement des crontabs, notons que OS X utilise en fait un autre executable, /System/Library/StartupItems/Cron/Cron, lançé par SystemStarter lors du démarrage. Ce programme lance à son tour le logiciel unix /usr/sbin/cron qui tournera jusqu'à l'extinction de votre système, sans toutefois le perturber (regardez donc son occupation CPU et mémoire dans ProcessViewer..).

Demain nous verrons donc comment configurer les crontabs.

Crontabs: usage général

28/06/03

Les fichiers crontabs dont je vous ai parlé hier sont stockés dans /private/var/cron/tabs. Chaque utilisateur possède un fichier crontab à son nom.

Pour éditer ces crontabs, ne lancez surtout pas TextEdit ! Il existe une commande spécifique nommée... crontab !
Sa syntaxe est crontab [-u user] { -l | -r | -e }.
L'option -r permet de supprimer le fichier crontab, l'option -l de l'afficher et enfin l'option -e de l'éditer. Toutes ces opérations se font sur le crontab du user spécifié et le cas échéant sur celui de l'utilisateur courant.

Vous pouvez créer une liste des utilisateurs autorisés à éxécuter cette commande dans /private/var/cron/allow ou au contraire une liste noire dans /private/var/cron/deny.

Enfin l'édition du crontab se fait dans vi selon une syntaxe que nous verrons lors du prochain épisode... (si c'est pas du bon teasing ça..)

Crontabs: syntaxe

29/06/03

Nous savons maintenant ouvrir des crontabs dans l'éditeur vi. Reste à savoir de quel manière s'écrit une ligne compréhensible par cron.

Il existe en fait deux types de lignes. Le premier est simplement une affectation de variable du type:
VAR=val

Les variables que vous pouvez avoir à définir sont par exemple MAILTO, SHELL, HOME.. (pour une liste exhaustive, se référer à man 5 crontab).

Ensuite viennent les commandes programmées. Une ligne de ce type comporte cinq champs définissant l'heure d'execution (suivis de la commande proprement dite). Ces champs sont:
minutes: de 0 à 59
heures: de 0 à 23
jour du mois: de 1 à 31
mois: de 0 à 12
jour de la semaine: de 0 à 7.

Pour les mois et les jours de la semaine vous pouvez utiliser les noms anglais.

Vous pouvez spécifier un intervalle du type 0-4, une liste de la forme 12,16,19 ou encore un intervalle avec un pas: 0-12/2, ce qui est équivalent à 0,2,4,6,8,10,12.

Enfin une astérisque * signifie comme d'habitude tout, ce qui permet les répétitions d'événements.

Après cela vient la commande, commande unix tout à fait normale.

Je vous proposerai demain des exemples de fichier crontab pour mieux comprendre le fonctionnement...

Exemples de crontabs

30/06/03

Comme promis voici un ou deux exemples de fichiers crontab. Commençons par un fichier crontab typique pour l'utilisateur root:

#on demande à ce que les éventuels mails soient envoyés à l'administrateur:
MAILTO=coco
SHELL=/bin/sh
#on vérifie tous les jours que les droits en écriture sur certains dossiers n'ont pas été redonnés:
0 [ ] [ ] chmod g-w / /Users
#Tous les jours à 2H30, lancer le script d'entretien quotidient
30 2 [ ] [ /etc/daily > /private/var/log/daily.out
#Toutes les semaines à 3H00:
0 3 ] [ 0 /etc/weekly > /private/var/log/weekly.out
#Tous les mois à 3H30:
30 3 1 ] [ /etc/monthly > /private/var/log/monthly.out


Voilà encore quelques exemples tirés de man 5 crontab:

23 0-23/2 ] [ ] echo "run 23 minutes after midn, 2am, 4am ..., everyday"
5 4 [ ] sun echo "run at 5 after 4 every sunday"
# run at 10 pm on weekdays, annoy Joe
0 22 [ ] 1-5 mail -s "It's 10pm" joe%Joe,%%Where are your kids?%


Je rapelle que les symboles % représentent des sauts de ligne.

Conclusion



Ca y est vous connaissez tout sur cron.
Vous pouvez maintenant programmer les taches de maintenance (ou autres choses) pour éviter d'avoir à les lancer manuellement. C'est beau quand il n'y a plus rien à faire, non ?

8 raisons de passer à UPDF, l'éditeur de fichiers PDF pour Mac, iPhone et iPad

8 raisons de passer à UPDF, l'éditeur de fichiers PDF pour Mac, iPhone et iPad

Le PDF s'est imposé au fil du temps comme un moyen de partager facilement des contenus textes, imagés, tout en conservant une mise en page...

Quelles nouveautés pour Calculette sous macOS 15 ? (Et iPadOS 18 alors ?)

Quelles nouveautés pour Calculette sous macOS 15 ? (Et iPadOS 18 alors ?)

Certains se désespèrent de voir arriver un jour l'app Calculette sur l'iPad. En attendant, il se murmure que cette dernière pourrait bien...

Apple ne veut plus de miettes dans les claviers des Mac !

Apple ne veut plus de miettes dans les claviers des Mac !

Apple en est persuadée : les doigts c’est le mal, enfin surtout les traces sur les Mac -une source continuelle d’agacement pour...

Logitech dévoile sa nouvelle souris avec un bouton ChatGPT !

Logitech dévoile sa nouvelle souris avec un bouton ChatGPT !

Il n'y a pas que les applications qui se dotent de raccourcis IA. En effet, Logitech vient de dévoiler sa nouvelle souris sans fil M750. De prime abord,...

Peakto Search optimise la recherche de photos dans Lightroom Classic

Peakto Search optimise la recherche de photos dans Lightroom Classic

L’éditeur français Cyme, déjà connu pour son méta-catalogueur Peakto, revient avec un plugin dédié...

La licence à vie d'Office Mac pour 29€ : GoDeal24 lance une nouvelle promo

La licence à vie d'Office Mac pour 29€ : GoDeal24 lance une nouvelle promo

Godeal24, distributeur mondial de logiciels informatiques, propose des licences Microsoft à des prix exceptionnels, dont certains pour votre Mac.

Final Cut Library Manager change d'éditeur, avec une licence perpétuelle

Final Cut Library Manager change d'éditeur, avec une licence perpétuelle

Les vidéastes qui nous lisent connaissent sans doute Final Cut Library Manager, ce gestionnaire de bibliothèques Final Cut Pro toujours aussi...

Comment récupérer des informations via une photo sur son Mac

Comment récupérer des informations via une photo sur son Mac

L'application Photos d'Apple utilise déjà l'IA pour repérer des détails -comme les adresses dans les images- et il est tout...

Commentaires

Connectez-vous/créez un compte pour réagir à cet article !
Oops, vous n'êtes pas connecté

Pour évaluer un commentaire sur Mac4Ever, vous devez être connecté avec votre compte utilisateur.

10 commentaires
Connectez-vous/créez un compte pour réagir à cet article !
Oops, vous n'êtes pas connecté

Pour évaluer un commentaire sur Mac4Ever, vous devez être connecté avec votre compte utilisateur.