Cron
De Gentoo Linux Wiki.
Sommaire |
[modifier] Introduction
Cron est un service qui permet d'exécuter des tâches préprogrammées (scheduled tasks) sur votre ordinateur.
[modifier] En quoi consiste ce HOWTO ?
Ce HOWTO va vous apprendre à utiliser les tâches préprogrammées avec cron en tant que root, basées sur le système de crontabs qui exécute tous les fichiers dans le dossier /etc/cron.d/daily une fois par jour, dans le dossier /etc/cron.d/hourly toutes les heures, etc...
Ce HOWTO ne montre que le moyen le plus facile et le plus simple de pré-programmer des commandes avec cron. Un emploi plus avancé de cron est possible, mais il est assez déroutant pour un débutant de travailler avec crontab, et ce n'est la plupart du temps pas nécessaire.
[modifier] Installation
Gentoo propose trois implémentations de cron. Consultez le Guide d'utilisation de Cron pour faire votre choix.
[modifier] Vixie-cron
La plupart des gens ont installé {Paquet|sys-process/vixie-cron}} à l'installation de leur Gentoo.
| Code: Installer vixie-cron |
# emerge -av vixie-cron # rc-update add vixie-cron default |
[modifier] Dcron ou fcron
Si pour une raison quelconque vixie-cron ne vous convient pas, vous pouvez opter pour Dcron ou fcron :
| Code: Installer Dcron |
# emerge -av dcron # rc-update add dcron default |
Ou pour fcron :
| Code: installer fcron |
# emerge -av fcron # rc-update add fcron default |
Terminez par :
(seulement pour Dcron ou fcron)
[modifier] Ajouter une tâche préprogrammée en root
Dans le répertoire /etc, vous trouverez 4 dossiers par défaut correspondant à différentes fréquences auxquelles cron exécute les commandes. Pour pré-programmer une tâche, placez un fichier avec la commande que vous souhaitez faire exécuter par cron dans le dossier approprié :
- /etc/cron.daily pour une tâche quotidienne
- /etc/cron.hourly pour que la commande soit exécutée toutes les heures
- /etc/cron.monthly pour une tâche mensuelle
- /etc/cron.weekly pour une tâche hebdomadaire
Admettons que vous vouliez exécuter la commande logwatch.pl quotidiennement. Pour installer logwatch emergez le :
(sys-apps/logwatch envoie des emails à l'utilisateur root reportant les fichiers log de votre ordinateur, vous permettant ainsi de savoir qui s'est loggé et quand, si vos disques fonctionnent et plus encore). Afin d'exécuter quotidiennement Logwatch, créons un fichier logwatch.cron dans le dossier /etc/cron.daily; Entrez y le nom du programme que vous voulez exécuter (nom complet et chemin d'accès). Si vous ne connaissez pas son chemin, essayez de le trouver avec sys-apps/which comme ceci :
#! /bin/sh /usr/sbin/logwatch.pl
Il ne vous reste maintenant plus qu'a rendre le fichier exécutable :
Logwatch envoie désormais tous les jours un email à l'utilisateur root.
[modifier] Autres tâches préprogrammées
[modifier] Logrotate
Pour le bien être de vos journaux, vous pouvez installer app-admin/logrotate, un programme qui "tronque" vos journaux lorsqu'ils deviennent trop importants. Si vous n'utilisez pas logrotate, vos journaux deviennent énormes (plusieurs centaines de mégaoctets) et certaines tâches deviennent moins efficaces.
Pas besoin d'être un génie pour installer et activer logrotate :
Cette commande installe logrotate et ajoute une entrée dans /etc/cron.daily pour que logrotate s'exécute quotidiennement, comme précédemment pour logwatch.
Par défaut, logrotate supprime les journaux âgés de plus de 4 semaines. Si vous voulez conserver vos journaux plus longtemps, commentez la ligne "rotate 4" dans /etc/logrotate.conf. Vous voudrez peut être aussi changer les paramètres de compression de vos anciens journaux; par défaut, il seront compressés. Les changements que vous pourriez vouloir apporter au fichier de configuration de logrotate sont listés ci-dessous :
# garder vos journaux plus de 4 semaines # rotate 4 # décommentez la ligne suivante si vous voulez compresser vos journaux # compress
[modifier] Webalizer
app-admin/webalizer est un programme qui consulte les journaux de votre serveur web net-www/apache et génère des pages web avec les graphiques représentants le trafic.
Webalizer est un peu plus difficile à installer que logrotate. Tout d'abord, emergez webaliser :
Le message retourné après l'installation de webalizer est quelque peu erroné : contrairement à ce qui vous est demandé, n'ajoutez rien à votre apache.conf, apache2 aura déjà lu le fichier de configuration de webalizer puisque celui ci se situe dans /etc/apache2/conf/modules.d. Vous aurez cependant besoin de redémarrer apache :
Si vous essayez http://localhost/webalizer, vous ne verrez rien, tout simplement parce qu'aucune statistique n'a été générée pour le moment. Créez un fichier /etc/cron.daily/webalizer.cron (en admettant que vous vouliez mettre à jour vos stats quotidiennement).
#! /bin/sh /usr/bin/webalizer
N'oubliez pas de le rendre exécutable pour que cron puisse l'utiliser :
Pour tester ce script, et générer à l'occasion vos premières statistiques, exécutez le. Pour se faire, tapez son nom :
Webalizer vous informera qu'il a bien fait son travail, et vous pouvez dorénavant consulter vos statistiques à l'adresse suivante : http://localhost/webalizer
[modifier] Portage
Certaines personnes préfèrent mettre à jour l'arbre de Portage à la main, alors que d'autres aimeraient bien automatiser ça. Tant mieux pour eux d'ailleurs, puisque ce tutoriel permet d'automatiser des tâches. N'oubliez pas toutefois que la Netiquette Gentoo stipule que vous ne devez pas mettre à jour plus d'une fois par jour. Nous allons donc programmer une tâche hebdomadaire.
Vous devez juste créer un script qui va mettre à jour votre arbre. Créez donc un /etc/cron.weekly/portage.cron :
#! /bin/sh exec /usr/bin/nice /usr/bin/emerge --sync
[modifier] Autres tâches
Vous pouvez aussi faire exécuter régulièrement chkrootkit et autres !