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 ?
Mac4Ever recrute sur Paris et Nîmes

Mac4Ever recrute sur Paris et Nîmes

Mac4ever renforce ses équipes et recherche plusieurs personnes pour participer à la rédaction de son fil d'actualité, à la création de contenu vidéo, ainsi qu'à l'amélioration du référencement des contenus. Si tu es intéressé, n'hésite pas à postuler !

Le Snapdragon X Plus est plus performant qu'un M3, selon Qualcomm !

Le Snapdragon X Plus est plus performant qu'un M3, selon Qualcomm !

Qualcomm étoffe son catalogue de puces ARM pensées pour les ordinateurs protables en déclinant le Snapdragon X Elite en version Plus et...

Apple plancherait sur des puces maison pour les serveurs et l'IA

Apple plancherait sur des puces maison pour les serveurs et l'IA

Après avoir installé ses propres puces dans ses appareils, Apple pourrait équiper ses serveurs de puces développée par ses...

Adobe dévoile une IA générative plus transparente pour Photoshop

Adobe dévoile une IA générative plus transparente pour Photoshop

A l'occasion de sa conférence MAX, Adobe lance son nouveau Photoshop en version bêta avec des fonctionnalités avancées en...

Des périphériques moins chers pour les créateurs de contenu chez Elgato !

Des périphériques moins chers pour les créateurs de contenu chez Elgato !

Si vous diffusez fréquemment des vidéos sur le net et que vous souhaitez vous équiper afin de proposer des contenus de qualité,...

L'écran 5K Studio Display d'Apple de retour à son prix le plus bas !

L'écran 5K Studio Display d'Apple de retour à son prix le plus bas !

Une nouvelle fournée de moniteurs est disponible aujourd'hui sur la boutique de produits reconditionnés d'Apple. Il faudra toutefois faire vite...

Et si Apple sautait le Mac mini M3 ?

Et si Apple sautait le Mac mini M3 ?

Il y a quelques mois, Apple a commencé sa transition vers les processeurs M3, à commencer par le MacBook Pro 14" M3, le MacBook Pro 16" M3 Pro,...

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...

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.