Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
applications:cron [Le 19/12/2006, 09:15] Blackpegaz redirection vers nouvelle version de page |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | DokuWiki | ||
- | <code> | ||
- | Toutes versions | ||
- | </code> | ||
- | |||
- | [[http://wiki.ubuntu.com/CronHowto|Traduit]] par [[utilisateurs:Manu]] complété par [[:contributeurs|Les contributeurs d'Ubuntu-fr]]. | ||
- | |||
- | |||
- | ===== Qu'est-ce que Cron ? ===== | ||
- | |||
- | **Cron** est un //daemon// utilisé pour programmer des tâches devant être exécutées à un moment précis. Chaque utilisateur a un fichier **crontab**, leur permettant d'indiquer les actions et à quelles périodes, elles devront être exécutées. Il y a également une **crontab** pour le système, permettant les tâches techniques, pour la mise à jour des différents programmes ou autres besoins périodiques. De plus, il existe un éditeur GTK [[http://packages.ubuntu.com/hoary/utils/gcrontab|gCrontab]] (paquet disponible via [[:Synaptic]] dans les dépots Universe) qui permet de s'affranchir facilement des différentes commandes décrites ci-dessous. | ||
- | |||
- | ===== Comment fonctionne Cron ? ===== | ||
- | |||
- | Pour utiliser **cron**, ajoutez simplement les entrées à votre fichier **crontab**. Une entrée dans **crontab** donne, par exemple, l'heure,(et la date si non périodique) et la commande à lancer: | ||
- | |||
- | <code> | ||
- | 5 3 * * * /usr/bin/apt-get update | ||
- | </code> | ||
- | |||
- | La première partie de l'entrée de **crontab** décrit quand l'action sera effectuée. Il y a cinq champs, séparés par un espace ou une tabulation, dont chacun est paramétré soit par, un nombre, une étoile (*), ou le texte approprié. Les champs sont, dans l'ordre, //minute//, //heure//, //jour du mois//, //mois// et //jour de la semaine//. Le mois et le jour de la semaine permettent l'utilisation d'une abréviation (suivant les jours et mois en anglais), telle que **jan** pour janvier (January) ou **thu** pour jeudi (Thursday). | ||
- | |||
- | L'exemple ci-dessus exécutera ///usr/bin/apt-get update//, chaque jour, de chaque mois à 03:05 (le **cron** fonctionne sur 24 h). Vous pouvez faire tourner **cron** toutes les 5 minutes tout au long de la journée de travail (9am-5pm) avec un message: | ||
- | |||
- | <code> | ||
- | */5 9-17 * * mon,tue,wed,thu,fri wall "Où en es tu ?" | ||
- | </code> | ||
- | |||
- | |||
- | ou vous rappelez un anniversaire à 9h du matin le 10 janvier chaque année: | ||
- | |||
- | <code> | ||
- | 0 9 10 jan * echo "C'est l'anniversaire de ta Maman aujoud'hui !" >>~/readme | ||
- | </code> | ||
- | |||
- | Il existe des raccourcis interessants : | ||
- | |||
- | * @reboot # se lance au reboot avec les droits utilisateurs, bien commode | ||
- | * @yearly | ||
- | * @annually | ||
- | * @monthly | ||
- | * @weekly | ||
- | * @daily | ||
- | * @midnight | ||
- | * @hourly | ||
- | |||
- | Cf aussi : | ||
- | |||
- | man 5 crontab | ||
- | |||
- | ===== Commande pour Cron ===== | ||
- | |||
- | Pour regarder le contenu de votre **crontab** ,tapez: | ||
- | |||
- | <code> | ||
- | crontab -l | ||
- | </code> | ||
- | |||
- | Pour éditer le fichier de votre **crontab**, tapez: | ||
- | |||
- | <code>crontab -e</code> | ||
- | |||
- | Quand vous sortez de l'éditeur, le nouveau fichier **crontab** sera installé. Le fichier est stocké dans ///var/spool/cron/crontabs/<user>// mais doit seulement être édité par l'intermédiaire de la commande **crontab**. | ||
- | |||
- | |||
- | L'éditeur utilisé pour modifier la crontab peut être modifié par la commande: | ||
- | <code> | ||
- | sudo update-alternatives --config editor | ||
- | </code> | ||
- | |||
- | ===== Autres Considérations ===== | ||
- | |||
- | Les commandes ci-dessus sont stockées dans un fichier **crontab** appartenant à votre compte d'utilisateur et exécutées avec votre niveau des permissions. Si vous voulez éxécuter, régulièrement, une commande exigeant un plus haut niveau de permission (root), vous devez utiliser le fichier **crontab** root (ou racine): | ||
- | |||
- | <code>sudo crontab -e</code> | ||
- | |||
- | Remarque : cette commande édite directement le fichier // /var/spool/cron/crontabs/<utilisateur>// (avec ici root comme utilisateur). | ||
- | |||
- | Selon les commandes à exécuter, vous devrez changer la variable //PATH// des utilisateurs ayant les droits //root// en mettant la ligne suivante au dessus de leurs fichiers **crontab**: | ||
- | |||
- | <code> | ||
- | PATH=/usr/sbin:/usr/bin:/sbin:/bin | ||
- | </code> | ||
- | |||
- | Il est important de vérifier que vos travaux dans **cron** fonctionnent comme prévu. Une méthode pour faire un test est de paramétrer le travail dans la **crontab** pour qu'il se fasse quelques minutes plus tard et de vérifier les résultats avant de mettre, la synchronisation de cette tache, à la bonne heure. Vous pouvez également trouver utile de mettre les résultats des commandes dans un fichier texte qui notent les succès ou les échec, par exemple: | ||
- | |||
- | <code> | ||
- | echo "Sauvegarde de nuit: $(date)" >>/tmp/mybackup.log | ||
- | </code> | ||
- | |||
- | Pour plus d'information, regardez les pages du //man// pour **cron** et **crontab** (le //man// est détaillé sur [[console:ligne_de_commande|les commandes basiques]]). Si votre machine est régulièrement éteinte, vous pouvez également être intéréssé par **at** (fait partie de l'installation de base d'Ubuntu ) et **anacron** (à trouver dans le dépôt `universe repository`) qui fournissez d'autres approches aux tâches programmées. | ||
- | |||
- | ===== Liens ? ===== | ||
- | [[http://www.math-linux.com/spip.php?article=16|Programmation des tâches régulières: crontab]] |