Dcron
Introduction
Dcron est une implémentation rapide, simple et sûre de cron. Il est la continuité du projet de Matt Dillon’s par Jim Pryor qui avait dans un premier temps forké, puis a fusionné la branche principale qui n’était plus maintenue et son fork dans dcron 4.0. Les modifications majeures apportées par la version 4.X sont les logs via syslog et des fonctionnalités inspirées d’Anacron. La version 4.5 permet de paramétrer la commande et les adresses d’envoie de mail, ainsi que des extensions de syntaxe permettant une granularité plus fine sur les fréquences des tâches.
Installation
Stoppez et désactivez votre ancien démon cron :
/etc/init.d/vixie-cron stop
rc-status del vixie-cron default
Supprimez le vieux paquet cron que vous aviez installé :
emerge -aC vixie-cron
Vous pouvez maintenant installer le paquet dcron sans conflit :
emerge -av dcron
Configuration
Dcron ne prend pas en compte les tâches se trouvant dans le fichier /etc/crontab. Par ailleurs, il n’est pas capable d’exporter des variables comme vixie-cron. Vous pouvez donc commenter ce fichier :
sed -ie "s/^/#/" /etc/crontab
Par défaut, dcron lit tous les fichiers se trouvant dans le répertoire /etc/cron.d, pensez donc à le vider de vos anciennes tâches.
Editez le fichier /etc/conf.d/dcron mettez le niveau de log à info :
DCRON_OPTS="-l info"
Démarrez le service et ajoutez-le au niveau de démarrage default :
/etc/init.d/dcron start
rc-update add dcron default
Les crontabs root
Par défaut, dcron va lire tous les fichiers se trouvant dans le répertoire /etc/cron.d, donc en exemple nous allons y placer une tâche concernant la rotation des logs avec logrotate :
vi /etc/cron.d/logrotate
# logrotate tous les soirs a 0H00
0 0 * * * /etc/cron.daily/logrotate.cron
Notez le fait que nous ne spécifions pas l’utilisateur.
Les crontabs utilisateurs
Tout comme vixie-cron, dcron gère les crontabs utilisateurs. Pour qu’un utilisateurs puisse créer et éditer ses crontabs, il suffit de l’ajouter dans le groupe cron :
gpasswd -a babykart cron
L’utilisateur babykart peut maintenant utiliser les commandes suivantes sans erreur.
- Lister
crontab -l
- Editer
crontab -e
Pour les exemples de crontabs, lisez le man.
man crontab