Linux Cron Comment exécuter des tâches automatiquement régulièrement

Sur les systèmes Linux, via Crontab, vous pouvez exécuter des script shell, script php, des sauvegardes Mysql à intervalle régulier. Par exemple, on peut régulièrement vider un répertoire temporaire tous les jours à minuit, ceci se fait avec une tâche CRON. Un fichier contient les tâches CRON, via une syntaxe particulière, on définit la fréquence d’exécution, qui peut aller de la seconde à l’année.

Contenu

Comprendre le système d’ordonnancement des tâches CRON

Comment est abbrévié le terme CRON? A l’origine : Chrono table -> crontab -> CRON voilà, c’est un mécanisme dans le monde UNIX et Linux, pour exécuter des tâches automatiquement. Bien sûr il faut laisser le serveur allumé pour que cette tâche puisse se faire.

* * * * * /usr/bin/php7.1/php /path/to/computation.php; /usr/bin/php7.1/php /path/to/sendmail.php

les 5 étoiles permettent de définir les fréquences d’exécution, leur usage est assez technique. Voici quelques exemples :

# Example of job definition:
# .---------------- 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,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  *  user command to be executed

# exemples

5 * * * * /path/to/script/script.sh >> exec.log
0 5 * * 1 /path/to/script/script.sh >> exec.log # tous les lundi à 5 heures du matin
5 * * * 1 /path/to/script/script.sh >> exec.log

source : https://www.linuxtricks.fr/wiki/cron-et-crontab-le-planificateur-de-taches

Voici un outil en ligne qui vous permet de traduire du langage humain vers le langage CRON.

Syntaxe CRON

Voici la syntaxe typique d’une tâche CRON, les 5 premiers emplacement sont à pour coder le moment et la fréquence,

Comment avoir la liste des CRON actifs sur Linux?

Il y a deux endroits à regarder, tout d’abord le fichier de job CRON global qui est dans /etc/crontab

Ensuite il y a les CRON par utilisateur, dans chaque fichier au nom de l’utilisateur dans le répertoire :

/var/spool/cron

Par exemple les CRON de l’utilisateur root aura pour chemin :

/var/spool/cron/root

pour en voir le contenu faites :

cat /var/spool/cron/root

Crontab pour accéder au cron de l’utilisateur courant

Chaque utilisateur a donc son répertoire cron, il existe une commande pour accéder rapidement au cron de l’utilisateur:

$crontab -e

Ainsi si vous êtes en root, vous verrez le cron de l’utilisateur root, sous l’utilisateur user1, vous verrez le cron de l’utilisateur user1 ainsi de suite.

https://unix.stackexchange.com/questions/7053/how-can-get-a-list-of-all-scheduled-cron-jobs-on-my-machine
Retour en haut