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.