Salut Lionel,
Qu'est ce qu'un Crontab ?
À ne pas confondre avec la commande
at (une commande qui permet d'exécuter une tâche plus tard).
crontab est en fait une commande qui permet de lire et de modifier un fichier appelé la
« crontab ».
Ce fichier contient la liste des programmes que tu souhaites exécuter régulièrement, et à quelle heure tu souhaites qu'ils soient exécutés.
Je t'invite à lire la doc de la commande afin de voir les différentes options qu'elle te propose
man crontab
Il y a trois paramètres différents à connaître, pas plus :
* -e : modifier la crontab ;
* -l : afficher la crontab actuelle ;
* -r : supprimer ta crontab. Attention, la suppression est immédiate et sans confirmation !
Normalement, tu n'as pas encore créé de crontab. Tu noteras qu'il y a une crontab par utilisateur. C'est-à-dire que même root a son propre cron.
Comment éditer un cron ?
Si c'est pour le système, ce sera le crontab de root (donc en tant que su / sudo / sudo su).
Je sais, c'est débile, mais admettons que tu souhaites créer un fichier nommé temp.txt toutes les heures. Il te faut tout d'abords que tu exécutes la commande pour éditer un cron
Le fichier crontab se présente ainsi en faisant la commande :
crontab -e
# Example
# .---------------- minute (0 - 59)
# | .------------- heure (0 - 23)
# | | .---------- jour du mois (1 - 31)
# | | | .------- mois (1 - 12) OU jan,feb,mar,apr ...
# | | | | .---- jour de la semaine (0 - 6) (Sunday=0 or 7) OU sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * la commande utilisateur
Ce qui va donner ainsi si tu souhaites créer ce fichier :
* */1 * * * touch chemin/vers/nouveau/fichier/temp.txt
Les différentes notations possibles
Pour chaque champ, on a le droit à différentes notations :
- 5 (un nombre) : exécuté lorsque le champ prend la valeur 5 ;
- * : exécuté tout le temps (toutes les valeurs sont bonnes) ;
- 3,5,10 : exécuté lorsque le champ prend la valeur 3, 5 ou 10. Ne pas mettre d'espace après la virgule ;
- 3-7 : exécuté pour les valeurs 3 à 7 ;
- */3 : exécuté tous les multiples de 3 (par exemple à 0 h, 3 h, 6 h, 9 h…).
Une fois que tu auras enregistré le fichier, tu devrais voir dans le terminal un message de succès.
Cependant, si ta commande est foireuse, tu ne peux pas voir d'où vient le problème. Tu vas devoir tracker et donc loguer
Ce qui va donner ceci :
* */1 * * * touch chemin/vers/nouveau/fichier/temp.txt >> chemin/vers/cron.log
Donc, pour ton problème, tu vas te créer un fichier php qui lui fera l'appel à l'API tous les 3-4 heures via un cron et génèrera un json ou autre format. Ensuite avec WP, tu appelles ton json. Une question : pourquoi avec wp, tu n'appelles pas directement cette API ?
ps :
1. Bien que formatux soit intéressant dans l'apprentissage d'un système Linux, la doc pour
cron est succinctes (d'où mon détail dans ma réponse).
2.
flux de redirection sortie Modifié par niuxe (29 Aug 2024 - 10:48)