Automatiser des tâches data avec cron

Traitement des données en ligne de commande

Susan Sun

Data Person

Qu'est-ce qu'un ordonnanceur ?

  • Un ordonnanceur exécute des tâches selon un planning défini
  • Ordonnanceurs commerciaux : Airflow, Luigi, Rundeck, etc.
  • L'ordonnanceur cron est
    • simple
    • gratuit
    • personnalisable
    • purement en ligne de commande
    • natif sur MacOS et Linux
Traitement des données en ligne de commande

Qu'est-ce que cron ?

Cron :

  • est un ordonnanceur 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 la maintenance système, des scripts bash, des jobs Python, etc.
Traitement des données en ligne de commande

Qu'est-ce que crontab ?

Crontab est le fichier central qui recense les tâches cron.

crontab -l
no crontab for <username>

Documentation :

man crontab
Traitement des données en ligne de commande

Ajouter une tâche à la crontab

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

Méthode 2 : envoyer la commande d'ordonnancement dans la 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 ligne de commande

Programmer l'exécution d'une tâche cron

La fréquence la plus courante pour les tâches cron est une minute.

Décomposition des champs 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 ligne de commande

Programmer l'exécution d'une tâche cron

*  *  *  *  * python create_model.py

Interprétation :

  • Exécuter chaque minute de chaque heure, de chaque jour, de chaque mois et de chaque jour de la semaine.

  • En bref, exécuter chaque minute

Ressources complémentaires :

Traitement des données en ligne de commande

Passons à la pratique !

Traitement des données en ligne de commande

Preparing Video For Download...