Automatiser des tâches de données avec cron

Traitement des données en Shell

Susan Sun

Data Person

Qu'est-ce qu'un planificateur ?

  • Un planificateur exécute des tâches selon un horaire prédéfini
  • Planificateurs commerciaux : Airflow, Luigi, Rundeck, etc.
  • Le planificateur cron est
    • simple
    • gratuit
    • personnalisable
    • entièrement en ligne de commande
    • natif sur MacOS et Linux
Traitement des données en Shell

Qu'est-ce que cron ?

Cron :

  • est un planificateur de tâches basé sur le temps
  • est préinstallé sur MacOS, Unix
  • peut être installé sur Windows via Cygwin ou remplacé par le Planificateur de tâches Windows
  • sert à automatiser des tâches comme l'entretien du système, des scripts bash, des tâches Python, etc.
Traitement des données en Shell

Qu'est-ce que crontab ?

Crontab est le fichier central qui répertorie les tâches cron.

crontab -l
no crontab for <username>

Documentation :

man crontab
Traitement des données en Shell

Ajouter une tâche à crontab

Méthode 1 : modifier crontab avec un éditeur de texte (p. ex. nano, Vim, Emacs)

Méthode 2 : écrire la commande du planificateur dans crontab avec echo

echo "* * * * * python create_model.py" | crontab

Vérifier que la tâche est bien planifiée :

crontab -l
* * * * * python create_model.py
Traitement des données en Shell

Apprendre à minuter une tâche cron

La planification la plus fréquente pour les tâches cron est une minute.

Décomposition des éléments temporels d'une tâche cron :

.---------------- minute (0 - 59)
|  .------------- hour (0 - 23)
|  |  .---------- day of month (1 - 31)
|  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
|  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed ...
|  |  |  |  |
*  *  *  *  * command-to-be-executed
Traitement des données en Shell

Apprendre à minuter une tâche cron

*  *  *  *  * python create_model.py

Interprétation :

  • S'exécuter chaque minute de chaque heure, de chaque jour, de chaque mois et de chaque jour de la semaine.

  • En bref, s'exécuter chaque minute

Ressources complémentaires :

Traitement des données en Shell

Passons à la pratique !

Traitement des données en Shell

Preparing Video For Download...