crontab est une commande qui vous permet d'exécuter des commandes à des intervalles de temps réguliers, avec l'avantage supplémentaire que vous n'avez pas à être connecté au système et que la sortie de ces commandes vous est envoyée par courrier électronique. Vous pouvez spécifier les intervalles en minutes, en heures, en jours et même en mois. crontab agira différemment en fonction des options :
Commençons par éditer un fichier crontab. En tapant crontab -e, vous vous retrouverez en face de votre éditeur de texte préféré si vous avez initialisé la variable d'environnement EDITOR ou VISUAL, autrement c'est Vi qui sera utilisé. Une ligne dans un fichier crontab est composée de six champs. Les cinq premiers sont les intervalles de temps en minutes, heures, jours dans le mois, mois et jours dans la semaine. Le sixième champ est la commande à exécuter. Les lignes commençant par un # sont considérées comme des commentaires et seront ignorées par crond (le programme en charge d'exécution des fichiers crontab). Voici un exemple de fichier crontab :
# Si vous ne voulez pas recevoir de courrier, # "décommentez" la ligne suivante #MAILTO="votre_adresse_courriel" # # Faire un rapport de toutes les nouvelles images # à 14h tous les deux jours, en partant de # l'exemple ci-dessus --- après ceci, # "retoucher" le fichier "stamp". Le "%" est # traité comme un retour chariot, cela vous # permet de mettre plusieurs commandes sur la # même ligne. 0 14 */2 * * find /shared/images \ -cnewer /shared/images/stamp \ -a -iregex ".*\.jpe?g" \ -a -not -regex \ ".*/old/.*"%touch /shared/images/stamp # # Jouer une mélodie tous les ans à Noël :) 0 0 25 12 * mpg123 $HOME/musiques/joyeux_noel.mp3 # # Imprimer la liste des courses tous les mardis # à 17 heures... 0 17 * * 2 lpr $HOME/liste-courses.txt |
Il y a plusieurs autres moyens de spécifier des intervalles que ceux mentionnés dans l'exemple. Par exemple, vous pouvez spécifier un ensemble de valeurs discrètes séparées par des virgules (1,14,23) ou un intervalle (1-15), ou même combiner les deux (1-10,12-20), éventuellement avec un pas (1-12,20-27/2). Maintenant, il vous reste à trouver des commandes utiles à y mettre!