Différences entre versions de « Exécuter automatiquement des scripts sous Linux »

De Ikoula Wiki
Jump to navigation Jump to search
Ligne 13 : Ligne 13 :
 
<span data-link_translate_es_title="Ejecutar automáticamente secuencias de comandos en Linux"  data-link_translate_es_url="Ejecutar+autom%C3%A1ticamente+secuencias+de+comandos+en+Linux"></span>[[:es:Ejecutar automáticamente secuencias de comandos en Linux]][[es:Ejecutar automáticamente secuencias de comandos en Linux]]
 
<span data-link_translate_es_title="Ejecutar automáticamente secuencias de comandos en Linux"  data-link_translate_es_url="Ejecutar+autom%C3%A1ticamente+secuencias+de+comandos+en+Linux"></span>[[:es:Ejecutar automáticamente secuencias de comandos en Linux]][[es:Ejecutar automáticamente secuencias de comandos en Linux]]
 
<span data-link_translate_en_title="Automatically run scripts under Linux"  data-link_translate_en_url="Automatically+run+scripts+under+Linux"></span>[[:en:Automatically run scripts under Linux]][[en:Automatically run scripts under Linux]]
 
<span data-link_translate_en_title="Automatically run scripts under Linux"  data-link_translate_en_url="Automatically+run+scripts+under+Linux"></span>[[:en:Automatically run scripts under Linux]][[en:Automatically run scripts under Linux]]
== Problématique ==
 
Vous souhaitez pouvoir faire appel à des scripts ou commandes Linux, automatiquement, certains jours ou heures.
 
  
== Solution ==  
+
Cet article explique le fonctionnement de ''cron'' et comment créer une tâche planifiée récurrente avec ''crontab''.
La création de règles ''cron'' permet d'informer le système des commandes à exécuter ainsi que le délai ou heure de déclenchement.<br />
+
 
<br />
+
== Le fonctionnement de Cron ==
;Il vous faut tout d'abord vérifier que votre script est capable de s’exécuter en ligne de commande.
+
 
<br />
+
=== Vérification ===
;Il suffit ensuite d'inserer dans le fichier /etc/crontab, le chemin du script et les heures d’exécution.
+
Le service ''cron'' s'exécute au démarrage de la machine et lance les lignes de commandes en fonction de ce qui est renseigné dans ses fichiers de configuration.
 +
 
 +
Pour vérifier que le service ''cron'' est fonctionnel, lancez la commande :
 +
<pre>$ systemctl status cron.service</pre>
 +
 
 +
=== Installation ===
 +
Dans de très rare cas, le service cron peut ne pas être installé par défaut sur le système.
 +
 
 +
Pour un système Debian/Ubuntu :
 +
<pre>$ sudo apt install cron</pre>
 +
 
 +
Pour un système Centos :
 +
<pre>$ sudo dnf install cronie</pre>
 +
 
 +
=== Fichiers et dossiers de configuration ===
 +
Le fichier de configuration principal est <code>/etc/crontab</code>.
 +
 
 +
Il est par défaut configuré pour exécuter avec l'utilisateur ''root'' les scripts stockés dans ces dossiers :
 +
* <code>/etc/cron.hourly</code> : Toutes les heures
 +
* <code>/etc/cron.daily</code> : Tous les jours
 +
* <code>/etc/cron.weekly</code> : Toutes les semaines
 +
* <code>/etc/cron.monthly</code> : Tous les mois
 +
 
 +
 
 +
== Ajouter une tâche ==
 +
Pour ajouter  une tâche, il n'est pas conseillé de modifier directement le fichier <code>/etc/crontab</code>.
 +
 
 +
Pour cela, nous préférerons utiliser la commande ''crontab'' qui modifiera le fichier après une avoir vérifié la syntaxe.
 +
 
 +
=== Utilisation de ''crontab''===
 +
; crontab -l : Lister les planifications
 +
;crontab -r : Supprimer toutes les planifications
 +
;crontab -e : Éditer les planifications
 +
 
 +
 
 +
Pour ajouter une ligne de commande qui va s’exécuter régulièrement, nous allons donc utiliser :
 +
<pre># crontab -e</pre>
 +
 
 +
Un éditeur de texte se lance et on peut y ajouter une ligne.
  
 
Voici la composition d'une ligne ''cron'':
 
Voici la composition d'une ligne ''cron'':
 
'''[minute] [heure] [jour du mois] [mois] [jour de la semaine] [commande à lancer]'''<br /><br />
 
'''[minute] [heure] [jour du mois] [mois] [jour de la semaine] [commande à lancer]'''<br /><br />
 
 
===Exemples===
 
===Exemples===
 
<pre>
 
<pre>
 
 
#Programmation du reboot soft tous les Lundi, Mardi, Jeudi, Samedi a 6h30
 
#Programmation du reboot soft tous les Lundi, Mardi, Jeudi, Samedi a 6h30
 
30 6 * * 1,2,4,6 root reboot
 
30 6 * * 1,2,4,6 root reboot
 +
</pre>
  
 +
<pre>
 
#Programmation d'un script http appelé toutes les minutes
 
#Programmation d'un script http appelé toutes les minutes
 
*/1 * * * * root GET http://votre-domaine.com/test.php
 
*/1 * * * * root GET http://votre-domaine.com/test.php
 
 
</pre>
 
</pre>
  

Version du 3 juillet 2020 à 11:56

fr:Exécuter automatiquement des scripts sous Linux he:הפעל אוטומטית את קבצי ה-script תחת לינוקס ro:Rula automat script-uri sub Linux ru:Автоматически запускать скрипты под Linux pl:Automatycznie uruchamiać skrypty pod Linuksem ja:Linux のスクリプトを自動的に実行します。 ar:تلقائياً بتشغيل البرامج النصية تحت لينكس zh:自动运行在 Linux 下的脚本 de:Automatische Ausführung von Skripten unter Linux nl:Automatisch uitvoeren van scripts onder Linux it:Eseguire automaticamente script sotto Linux pt:Automaticamente executar scripts no Linux es:Ejecutar automáticamente secuencias de comandos en Linux en:Automatically run scripts under Linux

Cet article explique le fonctionnement de cron et comment créer une tâche planifiée récurrente avec crontab.

Le fonctionnement de Cron

Vérification

Le service cron s'exécute au démarrage de la machine et lance les lignes de commandes en fonction de ce qui est renseigné dans ses fichiers de configuration.

Pour vérifier que le service cron est fonctionnel, lancez la commande :

$ systemctl status cron.service

Installation

Dans de très rare cas, le service cron peut ne pas être installé par défaut sur le système.

Pour un système Debian/Ubuntu :

$ sudo apt install cron

Pour un système Centos :

$ sudo dnf install cronie

Fichiers et dossiers de configuration

Le fichier de configuration principal est /etc/crontab.

Il est par défaut configuré pour exécuter avec l'utilisateur root les scripts stockés dans ces dossiers :

  • /etc/cron.hourly : Toutes les heures
  • /etc/cron.daily : Tous les jours
  • /etc/cron.weekly : Toutes les semaines
  • /etc/cron.monthly : Tous les mois


Ajouter une tâche

Pour ajouter une tâche, il n'est pas conseillé de modifier directement le fichier /etc/crontab.

Pour cela, nous préférerons utiliser la commande crontab qui modifiera le fichier après une avoir vérifié la syntaxe.

Utilisation de crontab

crontab -l
Lister les planifications
crontab -r
Supprimer toutes les planifications
crontab -e
Éditer les planifications


Pour ajouter une ligne de commande qui va s’exécuter régulièrement, nous allons donc utiliser :

# crontab -e

Un éditeur de texte se lance et on peut y ajouter une ligne.

Voici la composition d'une ligne cron: [minute] [heure] [jour du mois] [mois] [jour de la semaine] [commande à lancer]

Exemples

#Programmation du reboot soft tous les Lundi, Mardi, Jeudi, Samedi a 6h30
30 6 * * 1,2,4,6 root reboot
#Programmation d'un script http appelé toutes les minutes
*/1 * * * * root GET http://votre-domaine.com/test.php



Vous n'êtes pas autorisé à publier de commentaire.