Debian peut réaliser automatiquement des tâches récurrentes. Cela est utile lors de la mise en place de tâches à exécuter de façon régulière. Nous allons vous montrer comment.
Pour cela, il faudra se logger avec l’utilisateur qui réalisera ces tâches automatisées puis taper :
$crontab -eUn écran [1] apparaît ensuite listant les tâches existantes et sera par conséquent vierge si vous automatisez pour la première fois une tâche pour un utilisateur donné.
Il faudra ensuite taper autant de lignes que de processus à automatiser. Chaque ligne doit se présenter sous la forme :
Minute Heure Numéro_du_jour_dans_le_mois Numéro_du_mois Numéro_du_jour_dans_la_semaine commande_à_automatiser
Une fois terminé, sauvegarder puis quitter l’éditeur. [2]
Les intervalles sont acceptés : si l’on indique 1-4, le serveur comprendra de 1 à 4.
Le caractère étoile signifie que le champ est toujours vérifié. S’il est placé sur le mois par exemple, la commande sera exécutée quelque soit le mois.
La chaîne de caractère */x indique une période. Un */15 placé sur les minutes, elle signifie : pour chaque 00, 15, 30 et 45 minutes.
La commande crontab –l liste les tâches automatisées pour l’utilisateur en cours.
Voici un exemple de tâches automatisées via crontab :
0 9-17 * * 1-5 /etc/init.d/ntpd restart
0 12 * * 5 sh /home/olivier/exemple.shLa première ligne permet de relancer ntpd (afin de remettre l’heure du système à jour) du lundi au vendredi (ie du 1er au 5ième jour de la semaine) toutes les heures entre 9H00 et 17H00. La seconde ligne permet de lancer le script shell exemple.sh placé dans mon répertoire peronnel tous les vendredi (5ième jour de la semaine) à 12H00.
[1] En fait, l’éditeur indiqué dans les varibles votre environnement. Par défaut, il s’agit de http://fr.wikipedia.org/wiki/Vi_%28...
[2] Précisons, si votre éditeur est effectivement vi, que cela se fait en tapant sur ESCAPE puis en saisissant :wq ! et enfin ENTREE
| Date | Nom | Message |
Salut à tous et bravo pour le site ! Etrangement j ’ai eu à me servir de cron trés récemment et j’ai rencontré le problème suivant : s’il s’agit de lancer une application en ligne de commande ayant des entrées et sorties standard sur le shell, cela ne pose pas de problème, en revanche j’ai voulu lancer une application graphique (en l’occurence thunderbird, pour aller charger mes messages) et cela n’a jamais fonctionné, aprés moultes recherches, j’ai réussi à trouver la solution (ne me demandez pas où je ne me souviens plus...) il faut rajouter DISPLAY=:0 avant la ligne correspondant au programme que l’on veut démarrer. Inutile de vous rappeler que la casse doit être respectée. En revanche bien que j’ai trouvée cette solution, je ne comprends pas pourquoi donc si quelqu’un a l’explication... Merci à l’avance.
L’option DISPLAY=:0 te permet juste de spécifier que tu ouvre ton application sur le premier ecran de ton serveur X. En effet il est possible de lancer plus session X et passer ensuite de l’un à l’autre avec CTRL+ALT+F7 ... F8 comme pour les consoles.
j’ai utilisé votre solution mais quand je lance crontab -e j’ai un message d’erreur
voila ce que contient mon fichier crontab : * / 30 * * * * www /usr/share/ocsinventory-reports/glpi/plugins/tracker/scripts/tracker_fullsync.sh
attention aux espaces pour la sequences, "toutes les trentes minutes" */30 * * * * www /usr/share/ocsinventory-reports/glpi/plugins/tracker/scripts/tracker_fullsync.sh