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

Liens