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é.


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
Publié par Ssylvainsab - Dernière mise à jour le 17 novembre 2009 à 15:12 par marlalapocket
Ce document intitulé « Automatiser des tâches avec init et cron » issu de CommentCaMarche (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.
Suggestions
  •  Automatiser des tâches avec init et cron
  •  Outlook - Automatisation des tâches courantes ou répétitives » Articles : Automatisation des tâches courantes ou répétitives Actions rapides est une nouvelle fonctionnalité dans Microsoft Outlook 2010 qui applique simultanément plusieurs actions aux messages électroniques, afin de vous aider à gérer plus simplement et...
  •  Automatiser des taches (Résolu) » Bonjour, je suis à la recherche d'un certain logiciel. En fait, j'ai utilisé ça il y a plus de 4 ans donc je ne sais plus du tout quel était le nom du logiciel etc. Ce que faisais ce logiciel était de programmer des actions que l'ordinateur effectuera...
  •  Logiciel d'automatisation des taches (Résolu) » Bonjour, je dois mettre a jour 6 logiciels sur 120 postes via un Logiciel de prise de controle a distance (IDEAL Administration). Je voudrais savoir si il existe un Logiciel (ou une solution) pour que je ne sois pas obligé de désinstaller et...
  •  Automatisation des taches Firefox (Résolu) » Meilleure réponse: tu veux augmenter tes stats ou tes votes comme ça ?? tu risques d'etre demasqué si c'est le cas, puisque tout se fait avec la meme adresse IP de ton ordi bon bref, tu te débrouilles apres essai ça : http://korben.info/actions-pour-autom
  •  Logiciel d'automatisation de taches » Bonjour, Je recherche un logiciel qui ferais des tâches sous windows à ma place. Voila ce que je veux dans le détail : Je lance mon pc, et au démarrage de windows xp, je veux qu'il m'ouvre deux logiciels, qu'il ouvre dans chacun les fichiers...
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?
Kit de survie Linux
Transformer des colonnes en lignes dans un fichier