Flux rss
Collection CommentÇaMarche.net
Fdisk

Linux - Ordonnancement des taches

 
Bookmark Ajouter aux favoris / Partager

Introduction à 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 procédé est utilisé pour automatiser des sauvegardes (on parle de backup), notamment à des heures où le système est le moins sollicité (typiquement pendant la nuit pour les serveurs).

Présentation de cron

Les systèmes de type Unix (donc Linux) possèdent une application (plus exactement un démon) permettant de réaliser ce type de service, il s'agit de cron.

Cron est basé sur une table référençant les tâches à lancer ainsi que l'année, le mois, le jour, l'heure et la minute à laquelle l'exécuter.

Cron est ainsi constitué:

  • d'un démon: crond, c'est-à-dire un programme résident en mémoire lançant automatiquement les tâches en fonction de la table cron
  • d'une commande: crontab, permettant d'éditer la table des tâches à ordonnancer

cron (en réalité crond) se trouve généralement dans le répertoire /usr/sbin ou /sbin dans les distributions récentes. Pour connaître l'emplacement de crond dans votre distribution linux, il vous suffit de taper la commande suivante :

whereis crond

La commande crontab édite en fait un fichier relatif à l'utilisateur qui l'exécute. Ce fichier se situe dans :

/var/spool/cron/crontabs/utilisateur
Ainsi pour l'utilisateur root la table cron sera stockée dans :
/var/spool/cron/crontabs/root

Syntaxe de cron

Afin d'éditer la table cron, il suffit d'exécuter la commande suivante :

crontab -e
Cette commande a pour effet de lancer l'éditeur Vi présentant la table actuelle (donc aucune si il s'agit du premier lancement de crontab).

Chaque entrée de la table (chaque ligne) correspond à une tâche à exécuter et est notée de la façon suivante :

mm hh jj MMM JJJ tâche > log
Dans cette syntaxe :
  • mm représente les minutes (de 0 à 59)
  • hh représente l'heure (de 0 à 23)
  • jj représente le numéro du jour du mois (de 1 à 31)
  • MMM représente le numéro du mois (de 1 à 12) ou l'abréviation du nom du mois (jan, feb, mar, apr, ...)
  • JJJ représente l'abréviation du nom du jour ou le chiffre correspondant au jour de la semaine (0 représente le dimanche, 1 représente le lundi, ...)
  • tâche représente la commande ou le script shell à exécuter
  • log représente le nom d'un fichier dans lequel stocker le journal des opérations. Si la clause > log n'est pas spécifiée, cron enverra automatiquement un mail de confirmation. Pour éviter cela il suffit de spécifier > /dev/null
Pour chaque unité de temps (minute/heure/...) les notations sont possibles :
  • *: a chaque unité de temps
  • 2-5: les unités de temps (2,3,4,5)
  • */3: toutes les 3 unités de temps (0,3,6,...)
  • 5,8: les unités de temps 5 et 8

Quelques exemples d'utilisation

Imaginons que l'on veuille faire un journal (dans le fichier /tmp/log_df.txt par exemple)automatisé de l'espace disque libre (commande df) à des intervalles de temps précis :

  • Tous les jours à 23h30 :
    30 23 * * * df >>/tmp/log_df.txt
  • Tous les premiers du mois à 23h30 :
    30 23 1 * * df >>/tmp/log_df.txt
  • Tous les lundis à 22h28 :
    28 22 * * 1 df >>/tmp/log_df.txt
  • Du 2 au 5 de chaque mois à 10h12
    12 10 2-5 * * df >>/tmp/log_df.txt
  • Tous les jours pairs du mois à 23h59
    59 23 */2 * * df >>/tmp/log_df.txt
Il est également possible d'exécuter automatiquement des commandes plus complexes à l'aide d'un script shell. Il suffit donc dans un premier temps de créer un script. Puis de le déclarer en tant que tâche dans la table cron.

Le script shell suivant (que l'on supposera stocke dans /home/backup sous le nom backup.cmd)exporte les enregistrements de MySQL (de la table ccmusers par exemple) dans un fichier dont le nom est ccmusers suivi de la date sous la forme jour-mois-annee-heure-minute :

#!/bin/sh
DATE=$(date +%d-%m-%Y-%H-%M)
/usr/local/mysql/bin/mysqldump -u root ccmusers > /home/backup/ccmusers${DATE}.sql
Ainsi pour automatiser (chaque jour à 23h59) le backup de la table ccmusers de MySQL, il suffira d'ajouter l'entrée suivante dans la table cron :
59 23 * * * /home/backup/backup.cmd >>/dev/null

Inspiré d'un article de Linux Magazine

Dernière modification le mardi 14 octobre 2008 à 17:40:37.Ce document intitulé « Linux - Ordonnancement des taches » 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.

Gestionnaire de tâches sous Linux Bonjour, Il serait intéressant de visionner les processus lancés sous Linux et d'arrêter certains. J'utilise Kubuntu et quelquefois Knoppix mais je n'ai pas encore trouvé où faire cela En fait, je cherche l'équivalent du taskmgr de Windows dans... www.commentcamarche.net/forum/affich-7013429-gestionnaire-de-taches-sous-linux
Barre de tache sous linux Bonjour, quelqu'un pourrait me dire de la façon la plus simple, car mes compétences en linux sont nuls, comment je dois proceder pour avoir une barre de tache en bas de mon bureau. J'ai vu sur une discussion, qu'il faut ouvrir Parametre avec un clic... www.commentcamarche.net/forum/affich-11521274-barre-de-tache-sous-linux
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... www.commentcamarche.net/faq/sujet-8447-automatiser-des-taches-avec-init-et-cron
[Linux] Rapport quotidien des serveurs par mailL'administration de systèmes Linux est une tâche d'autant plus difficile qu'il y a un grand nombre de serveurs car il faut surveiller continuellement les ressources systèmes et les mises à jour nécessaires pour chacun d'entre eux. Le script suivant... www.commentcamarche.net/faq/sujet-961-linux-rapport-quotidien-des-serveurs-par-mail
Choisir une distribution LinuxChoisir sa distribution GNU/Linux est loin d'être évident ! Surtout quand on débute sur la banquise ;-) Ceci n'a pas la prétention de promouvoir une distribution au détriment des autres. C'est plutôt une liste de solutions classées par... www.commentcamarche.net/faq/sujet-3742-choisir-une-distribution-linux
[Linux] Compresser/Décompresser un fichier ZIPLes fichiers ZIP sont généralement destinés à un usage sous Microsoft Windows. Le format de compression privilégié sous Linux est GZip (.gz) ou le format Tarball (.tar.gz). Il est néanmoins possible de compresser et décompresser des fichiers ZIP à... www.commentcamarche.net/faq/sujet-955-linux-compresser-decompresser-un-fichier-zip
Planification des taches sous linux (Résolu)Bonjour, pleaase aidez moi j'ai un projet apropos de (planifications des taches sous gnu/linux) enfete j'ai pas bien compris qu'est ce que je vais faire .et j'ai essayé de cherché mais j'ai rien trouvé.s'il vous plait aidez moi.dans le plus proche... www.commentcamarche.net/forum/affich-5706026-planification-des-taches-sous-linux
Coder et Lancer des taches de fond (linux)Bonjour, Je me débrouille correctement en php, C, java, etc... Je dispose d'un serveur dédié sur OVH (linux). Je souhaite faire tourner la nuit des taches de fond... Comment les coder (Perl???), Comment les lancer comme batch la nuit? Merci bcp Cdlt... www.commentcamarche.net/forum/affich-940942-coder-et-lancer-des-taches-de-fond-linux
Barre de tache perdu sur gnome (debian sid) (Résolu)Bonjour, En voulant tester le bureau gnome sur debian, j'ai perdu la barre de tache (menu démarré). Il ne me reste que quelques icones sur le bureau : mozilla, messagerie, poste de travail, et dossier personnel. Toutes les application fonctionnent en... www.commentcamarche.net/forum/affich-1452139-barre-de-tache-perdu-sur-gnome-debian-sid
Télécharger Driver Ati Radeon Catalyst Linux x86Driver Ati Radeon Catalyst Linux x86 8.7 est un driver dédié aux cartes Radeon HD de la série suivants : X2900, 2600, 2400, X1950, X1900, X1800, X1650, X1600, X1550, X1300, X1050, X850, X700, X600, X550, X300, 9800, 9700, X9600, X9550, X9500, X9250, ... www.commentcamarche.net/telecharger/telecharger-34056837-driver-ati-radeon-catalyst-linux-x86
Télécharger Broadcom Ethernet NIC NetLink Driver pour LinuxLes drivers Broadcom NetLink BCM57xx/NetXtreme BCM57xx WHQL fonctionnent avec les chipsets suivants : BCM 5781, BCM 5786, BCM 5787, BCM 5788, BCM 5789 Ces pilotes fonctionnent sur le système Linux (tg3) www.commentcamarche.net/telecharger/telecharger-34056713-broadcom-ethernet-nic-netlink-driver-pour-linux
Télécharger Driver ATI Catalyst pour Linux (64bits)Nous ne sommes pas sans savoir que le monde du logiciel libre et open source attire de plus en plus dutilisateurs à basculer vers le système dexploitation Linux. Le hic, Linux ne prend pas en charge les pilotes des cartes graphiques. Si vous êtes... www.commentcamarche.net/telecharger/telecharger-34056801-driver-ati-catalyst-pour-linux-64bits
Acer Aspire One A110-Ab Intel Atom N270 1.6 GHz / 512 Mo / 8 Go / TFT8.9 / LinuxA 110, Intel Atom, 1.6 GHz, 512 Mo de RAM, Disque dur 8 Go, Ecran 8.9 pouces, Système d'exploitation:Linux, Type de souris:Touchpad, Nombre de ports USB :3, Lecteur de cartes mémoire:5-in-1, Connecteur VGA (D-sub):1, Réseau sans fil, Modem, Carte réseau, www.commentcamarche.net/guide/1136091-acer-aspire-one-a110-ab-intel-atom-n270-1-6-ghz-512-mo-8-go-tft8-9-linux
Hercules eCAFE EC-900/H60G-IA Intel Atom N270 1.6 GHz / 512 Mo / 60 Go / TFT8.9 / LinuxH 60 60 G 60G 60G, Intel Atom, 1.6 GHz, 512 Mo de RAM, Disque dur 60 Go, Ecran 8.9 pouces, Système d'exploitation:Linux, Type de souris:Touchpad, Lecteur de cartes mémoire:3-in-1, Nombre de ports USB :3, Carte réseau, Réseau sans fil, Standard réseau sans www.commentcamarche.net/guide/1187679-hercules-ecafe-ec-900-h60g-ia-intel-atom-n270-1-6-ghz-512-mo-60-go-tft8-9-linux
Linux - L'installation de logicielsLes différents types d'archives Basiquement il existe plusieurs façons de récupérer une application fonctionnant sous Linux : Sous forme de paquetage RPM. Il s'agit d'un fichier portant l'extension .rpm permettant une installation automatique,... www.commentcamarche.net/contents/tutlinux/linrpm.php3
Commandes LinuxTableau des principales commandes Linux Commande Description équivalent DOS ls liste le contenu d'un répertoire dir cd change de répertoire cd cd .. répertoire parent cd.. mkdir crée un nouveau... www.commentcamarche.net/contents/linux/lincomm.php3
Linux - L'éditeur ViIntroduction à Vi Vi est un des éditeurs de texte les plus populaires sous les systèmes de type Unix (avec Emacs et pico) malgré son ergonomie très limitée. Sous Linux il existe une version libre de Vi appelée Vim (Vi Improved). Vi (prononcez... www.commentcamarche.net/contents/linux/linvi.php3