
Crontab est un outil qui permet de lancer des applications de façon régulière, pratique pour un serveur pour y lancer des scripts de sauvegardes, etc.
Bien que par défaut, il soit souvent installé, voici les commandes pour l'installer sur les différentes distributions
Pour être autorisé à utiliser la commande
crontab, il faut que l'utilisateur soit présent dans le groupe
cron.
Les fichiers
/etc/cron.allow et
/etc/cron.deny permettent de définir les droits d'utilisation sur crontab.
Si le fichier /etc/cron.allow existe, alors vous devez être présent dans ce fichier pour être autorisé à utiliser cette commande. Si le fichier /etc/cron.allow n'existe pas mais que /etc/cron.deny existe, alors vous ne devez pas être mentionné dans le fichier /etc/cron.deny afin de pouvoir utiliser cette commande.
Je conseille de ne créer qu'un seul des deux fichiers et ensuite placer le nom des utilisateurs auxquels vous voulez donner/refuser l'accès à la commande
crontab.
L'utilisateur root passe outre ces fichiers
Les fichiers /etc/cron.allow et /etc/cron.deny gèrent l'accès à la commande crontab. Cela signifie que si un utilisateur possède un crontab et qu'ensuite on le supprime de liste de /etc/cron.allow, les tâches seront quand même effectuées.
Vous devez supprimer le crontab de cet utilisateur situé dans /var/spool/cron/crontabs
Pour afficher le contenu du fichier
crontab :
Pour supprimer toutes les actions du fichier
crontab :
Pour éditer les actions du fichier
crontab :
Le crontab s'ouvre avec un éditeur par défaut. Sous Fedora, c'est
vi. Si on veut utiliser
nano :
La syntaxe à utiliser est précise.
Voici de manière schématique la syntaxe à respecter d'un
crontab:
Le fichier de configuration de est constitué des différentes lignes. Chaque ligne correspond à une action.
Prenons l'exemple suivant :
Pour chaque unité, on peut utiliser les notations suivantes :
Bonus, on a des alias rapides tels que @reboot qui vont nous permettre de lancer une commande au boot de la machine. La syntaxe sera la suivante :
Exécution tous les jours à 22h00 d'une commande et rediriger les infos dans sauvegarde.log :
Exécution d'une commande toutes les 6 heures :
Exécution d'une commande toute les heures :
Exécution d'une commande toutes les minutes uniquement les lundis :
Exécution d'une commande une fois par an à une heure précise (ici le 25 décembre à 00h15) :
Exécuter chaque jour, de chaque mois à 2:15 la commande eix-sync
Par défaut, cron envoie un message à l'utilisateur qui a planifié sa tâche.
Pour ne pas envoyer de façon automatique ce message à l'utilisateur (ou
[email protected] si un agent tel que postfix a été configuré) il faut indiquer sur la première ligne du
crontab -e