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 | ||
cron [Le 02/01/2025, 12:58] 141.227.26.230 [Qu'est-ce que Cron] |
cron [Le 03/02/2025, 12:11] (Version actuelle) bcag2 [Commandes pour gérer les tâches planifiées Cron] |
||
---|---|---|---|
Ligne 15: | Ligne 15: | ||
[[Anacron]] est plutôt utilisé pour des machines à fonctionnement discontinu (comme les PC). | [[Anacron]] est plutôt utilisé pour des machines à fonctionnement discontinu (comme les PC). | ||
- | Cron a plus d'options qu'Anacron. Comme ce dernier, il peut lancer une tâche à un intervalle déterminé : par exemple chaque 5e jour de la semaine, chaque heure, ou chaque mois. Contrairement à Anacron, il peut aussi lancer une tâche à un moment pré-déterminé (« le 14 janvier 2018 à 15h 30 »). Limite par rapport à Anacron : si la machine n'est pas allumée, la tâche n'est pas lancée, et ne le sera jamais, même après le re-démarrage. __Elle est perdue__. Les prochaines seront évidement lancées, si la machine est allumée. | + | Cron a plus d'options qu'Anacron. Comme ce dernier, il peut lancer une tâche à un intervalle déterminé : par exemple chaque 5e jour de la semaine, chaque heure, ou chaque mois. Contrairement à Anacron, il peut aussi lancer une tâche à un moment pré-déterminé (« le 14 janvier 2018 à 15h 30 »). \\ |
+ | Limite par rapport à Anacron : si la machine n'est pas allumée, la tâche n'est pas lancée, et ne le sera jamais, même après le re-démarrage. __Elle est perdue__. Les prochaines seront évidement lancées, si la machine est allumée. | ||
- | [[Anacron]] n'utilise que des indications de temps relatives (« une fois par jour / par semaine / par mois »). Autre différence d'avec Cron, Si vous avez demandé une tâche toute les semaines, et que votre PC est démarré seulement au bout de 10 jours, Anacron constatera le retard, et lancera donc la tâche juste après le démarrage de votre PC. | + | [[Anacron]] n'utilise que des indications de temps relatives (« une fois par jour / par semaine / par mois »). Autre différence d'avec Cron, si vous avez demandé une tâche toute les semaines, et que votre PC est démarré seulement au bout de 10 jours, Anacron constatera le retard, et lancera donc la tâche juste après le démarrage de votre PC. |
- | Les 2 logiciels peuvent être utilisés sur un PC régulièrement éteint, mais Anacron a le gros avantage de lancer tous les traitements en retard à chaque allumage du PC, même si ceux-ci sont peu nombreux. Avec Cron, des allumages PC trop intermittents risquent d'annuler une grande partie des traitements programmés. | + | Les 2 logiciels peuvent être utilisés sur un PC régulièrement éteint, mais Anacron a le gros avantage de lancer tous les traitements en retard à chaque allumage du PC, même si ces derniers sont peu nombreux. Avec Cron, des allumages PC trop intermittents risquent d'annuler une grande partie des traitements programmés. |
- | La syntaxe de cron est plus complexe que celle d'anacron. | + | La syntaxe de Cron est plus complexe que celle d'Anacron. |
===== Comment fonctionne Cron ===== | ===== Comment fonctionne Cron ===== | ||
Ligne 112: | Ligne 113: | ||
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 modifié par l'intermédiaire de la commande **crontab**. | 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 modifié par l'intermédiaire de la commande **crontab**. | ||
- | Note : sur xubuntu, il faut auparavant indiquer que l'utilisateur a le droit d'utiliser crontab. Pour cela il faut créer un fichier ///etc/cron.allow// et y saisir le nom des utilisateurs autorisés à utiliser crontab. | + | <note important>Il faut auparavant indiquer que l'utilisateur a le droit d'utiliser crontab.\\ |
+ | Pour cela il faut créer un fichier **///etc/cron.allow//** et y saisir le nom des utilisateurs autorisés à utiliser crontab.</note> | ||
L'éditeur utilisé pour modifier la crontab peut être modifié par la commande : | L'éditeur utilisé pour modifier la crontab peut être modifié par la commande : | ||
Ligne 194: | Ligne 196: | ||
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 la tâche dans le **crontab** pour qu'elle s'exécute quelques minutes plus tard et contrôler le résultat, avant de mettre la synchronisation de cette tâche à la bonne heure. Vous pouvez également trouver utile d'envoyer les retours des commandes dans un fichier texte pour voir les succès ou les échecs, par exemple : | 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 la tâche dans le **crontab** pour qu'elle s'exécute quelques minutes plus tard et contrôler le résultat, avant de mettre la synchronisation de cette tâche à la bonne heure. Vous pouvez également trouver utile d'envoyer les retours des commandes dans un fichier texte pour voir les succès ou les échecs, par exemple : | ||
- | <code> | + | <code bash> |
echo "Sauvegarde de nuit: $(date)" >>/tmp/mybackup.log | echo "Sauvegarde de nuit: $(date)" >>/tmp/mybackup.log | ||
</code> | </code> | ||
Ligne 200: | Ligne 202: | ||
Une autre façon de contrôler la bonne exécution des tâches cron est d'utiliser sa capacité à envoyer des courriels. | Une autre façon de contrôler la bonne exécution des tâches cron est d'utiliser sa capacité à envoyer des courriels. | ||
Pour cela il suffit de renseigner la variable MAILTO dans votre fichier crontab, exemple : | Pour cela il suffit de renseigner la variable MAILTO dans votre fichier crontab, exemple : | ||
- | <code>MAILTO="jean.dupont@example.com"</code> | + | <code bash>MAILTO="jean.dupont@example.com"</code> |
- | **Attention**, pour que cela fonctionne il faut que votre machine soit capable d'envoyer des courriels. (voir par exemple : [[msmtp|MSMTP]] ou [[postfix_systeme_satellite|Système Satellite pour Postfix]], [[exim4-satellite|Système satellite pour exim4]]) | + | <note important>pour que cela fonctionne il faut que votre machine soit capable d'envoyer des courriels. (voir par exemple : [[msmtp|MSMTP]] ou [[postfix_systeme_satellite|Système Satellite pour Postfix]], [[exim4-satellite|Système satellite pour exim4]])</note>\\ |
+ | Au contraire, si vous ne voulez pas envoyer d’emails, ajouter simplement comme 1ère ligne utile <code bash>MAILTO=""</code> | ||
Pour plus d'informations, lisez les pages du //man// pour **cron** et **crontab** (le //man// est détaillé sur [[:tutoriel:console_ligne_de_commande|les commandes basiques]]). | Pour plus d'informations, lisez les pages du //man// pour **cron** et **crontab** (le //man// est détaillé sur [[:tutoriel:console_ligne_de_commande|les commandes basiques]]). |