Automatiser des tâches avec init et cron

Dernière mise à jour le 17 novembre 2009 à 15:12 par marlalapocket
Publié par Ssylvainsab
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é.


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
Meilleures réponses pour « Automatiser des tâches avec init et cron » dans :
MalwareBytes - Mise à jour automatique VoirMalwareByte's Anti-Malware est un bon logiciel pour retirer les infections : Lien L'astuce suivante concerne la version gratuite de MBAM. Comment faire pour que MBAM se mette à jour automatiquement ? Pour Windows XP Cliquer sur Menu...
Démarrage automatique d'un logiciel sous Gnome VoirIntroduction Sous Linux vous pouvez bien évidemment démarrer automatiquement un logiciel en passant par exemple par les scripts de démarrage situés dans /etc/init.d mais ça ne vous permettra pas de lancer d'applications graphiques au démarrage de...
Linux - Ordonnancement des taches VoirIntroduction à l'ordonnancement des tâches L'ordonnancement des tâches consiste à exécuter automatiquement une tâche (une application, une commande, ...) à intervalles de temps réguliers ou bien à des moments précis. Généralement ce type de...
Windows 7 - Barre des tâches et menu démarrer VoirLA BARRE DES TACHES ET LE MENU DEMARRER Cet élément clé du Bureau de Windows est situé en bas de l’écran, sur toute sa largeur. C’est l’un des aspects du système qui a le plus évolué entre Windows Vista et Windows 7. Pour commencer, elle est plus...
Systèmes d'exploitation - Windows - Tâches VoirQu'est-ce qu'une tâche? Une tâche n'a évidemment rien à voir avec une tache de graisse sur votre écran... :o) On appelle tâche toute action effectuée par le processeur. Un programme en mémoire est donc une tâche (exemple: un antivirus chargé en...