Automatiser des tâches avec init et cron
Sous Linux, il est facile d'automatiser des tâches, avec init pour lancer une tâche au démarrage, ou bien avec cron pour lancer une tâche à un moment précis.
Il y a plusieurs logiciels gérant les crons, ici le logiciel crontab est présenté.
Avant tout, il faut créer un nouveau fichier qui exécutera le code que l'on veut.
Pour cela, il suffit d'ouvrir un éditeur (en tant que root), et d'enregistrer le fichier dans le dossier voulu (voir plus bas). N'oubliez pas d'indiquer l'interpréteur à utiliser au début du fichier.
Par exemple (avec bash) :
Ensuite, il faut rendre le fichier exécutable :
# chmod 755 /repertoire/monfichier
init est le premier processus, exécuté par le noyau, qui est père de tous les autres (son PID est donc 1).
Au démarrage, il lance divers scripts contenus dans /etc/init.d/ ou /etc/rc*.d/.
C'est dans le dossier /etc/init.d qu'il faut enregistrer les fichiers à lancer au démarrage.
Il faut ensuite ajouter le fichier à la liste des processus lancés au démarrage :
# update-rc.d mon-fichier defaults
Tapez dans un terminal :
cron permet de lancer une tâche régulièrement : tous les jours, toutes les semaines, toutes les heures...
Avec crontab, il y a un fichier cron par utilisateur.
Il existe plusieurs dossiers contenant des tâches exécutées par les crons :
Il suffit de créer un fichier dans le dossier correspondant.
Cependant, il est possible de vouloir lancer des tâches à des moments plus précis.
Pour cela, il faut créer un fichier respectant la syntaxe de crontab (voir chapitre plus bas) dans /etc/cron.d/, qui contiendra lui-même une commande ou qui exécutera un autre fichier.
Il est aussi possible de créer des tâches pour un utilisateur en particulier. Il faut éditer le fichier crontab de l'utilisateur (voir plus bas).
Il y a déjà beaucoup de tutoriels sur le web à ce sujet.
Voir :
Pour cela, il faut éditer son fichier utilisateur, en tapant dans une console crontab -e.
Si vous voulez créer un fichier crontab pour un autre utilisateur que l'utilisateur courant, il faut passer par la commande # crontab -u utilisateur -e.
Il faut ensuite enregistrer le fichier, sans changer son nom ou son emplacement.
Il faudra toujours passer par la commande crontab -e pour éditer le fichier.
Tapez dans un terminal :
Voir :
Il existe divers logiciels graphiques qui permettent de créer des tâches automatisées :
Il y a plusieurs logiciels gérant les crons, ici le logiciel crontab est présenté.

- Créer une nouvelle tâche
- Lancer une tâche au démarrage : init
- Lancer une tâche à un moment précis : crontab
- Cron avec une interface graphique
Créer une nouvelle tâche
Avant tout, il faut créer un nouveau fichier qui exécutera le code que l'on veut.
Pour cela, il suffit d'ouvrir un éditeur (en tant que root), et d'enregistrer le fichier dans le dossier voulu (voir plus bas). N'oubliez pas d'indiquer l'interpréteur à utiliser au début du fichier.
Par exemple (avec bash) :
#!/bin/bash commande; ...Il est possible d'utiliser un autre interpréteur, en changeant simplement #!/bin/bash par l'interpréteur choisi : #!/bin/python, #!/bin/perl, etc.
Ensuite, il faut rendre le fichier exécutable :
# chmod 755 /repertoire/monfichier
Lancer une tâche au démarrage : init
Présentation
init est le premier processus, exécuté par le noyau, qui est père de tous les autres (son PID est donc 1).
Au démarrage, il lance divers scripts contenus dans /etc/init.d/ ou /etc/rc*.d/.
C'est dans le dossier /etc/init.d qu'il faut enregistrer les fichiers à lancer au démarrage.
Il faut ensuite ajouter le fichier à la liste des processus lancés au démarrage :
# update-rc.d mon-fichier defaults
Plus d'informations
Tapez dans un terminal :
- ls -l /etc/init.d/ pour voir les scripts lancés au démarrage
- init --help
- cat /etc/init.d/README
- man init
- info init
- man update-rc.d
Lancer une tâche à un moment précis : crontab
Présentation
cron permet de lancer une tâche régulièrement : tous les jours, toutes les semaines, toutes les heures...
Avec crontab, il y a un fichier cron par utilisateur.
Ajouter une tâche
Il existe plusieurs dossiers contenant des tâches exécutées par les crons :
- /etc/cron.hourly : les scripts exécutés chaque heure.
- /etc/cron.daily : les scripts exécutés chaque jour.
- /etc/cron.weekly : les scripts exécutés chaque semaine.
- /etc/cron.monthly : les scripts exécutés chaque mois.
Il suffit de créer un fichier dans le dossier correspondant.
Cependant, il est possible de vouloir lancer des tâches à des moments plus précis.
Pour cela, il faut créer un fichier respectant la syntaxe de crontab (voir chapitre plus bas) dans /etc/cron.d/, qui contiendra lui-même une commande ou qui exécutera un autre fichier.
Il est aussi possible de créer des tâches pour un utilisateur en particulier. Il faut éditer le fichier crontab de l'utilisateur (voir plus bas).
Syntaxe du fichier crontab
Il y a déjà beaucoup de tutoriels sur le web à ce sujet.
Voir :
Lancer une tâche pour un utilisateur seulement
Pour cela, il faut éditer son fichier utilisateur, en tapant dans une console crontab -e.
Si vous voulez créer un fichier crontab pour un autre utilisateur que l'utilisateur courant, il faut passer par la commande # crontab -u utilisateur -e.
Il faut ensuite enregistrer le fichier, sans changer son nom ou son emplacement.
Il faudra toujours passer par la commande crontab -e pour éditer le fichier.
Plus d'informations
Tapez dans un terminal :
- man cron
- info cron
Voir :
Cron avec une interface graphique
Il existe divers logiciels graphiques qui permettent de créer des tâches automatisées :
- kcron
- gcrontab
Ce document intitulé « Automatiser des tâches avec init et cron » issu de Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.