Les tâches CRONS

Bonjour à tous,

Un petit post technique aujourd’hui, suite à pas mal de questions récurrentes je me suis dis que ça serait peut être pas mal de faire un petit article explicatif sur les tâches CRON et leur fonctionnement.

Tout d’abord qu’est ce qu’une tâche cron ?

C’est tout simplement une tâche planifiée, programmée pour être executée toutes les XX secondes,minutes, heures etc .. toutes les combinaisons sont possibles, le but étant que ça soit notre serveur qui s’en charge à notre place, sans qu’on aie à la lancer regulièrement.

Un cas courant, dans lequel vous seriez confronté à l’utilisation des CRONS, serait par exemple lorsque vous utilisez le script d’intégration de Pornattitude en SQL. Effectivement il faut pour celà que la base de données soit mise à jour quotidiennement pour intégrer la nouvelle vidéo..

Appuyons nous donc sur cet exemple pour les explications :

Le code pour la mise à jour se trouve ICI on le copie dans un fichier maj_pornattitude.php disons.

La structure d’une ligne d’execution CRON ressemble à ceci :

* * * * * /chemin/vers/php -q /chemin/vers/maj_pornattitude.php > /dev/null 2>&1

Que signifie cette ligne de barbare ?

Considérons que la ligne ci dessus puisse être généralisée à cette forme ci :

mm hh jj MMM JJJ tâche > (log)

mm -> minutes (de 0 à 59).
hh -> heures (de 0 à 23).
jj -> jour (de 1 à 31).
MMM -> mois (de 1 à 12)
JJJ
-> jour de la semaine (de 0 (pour dimanche) à 6 (pour samedi)).
tâche -> commande ou script shell à exécuter.

Ca vous semble déjà plus compréhensible là non ? 🙂

On adapte ensuite la ligne de cron pour convenir à notre cas, comme ceci :

30 2 * * * /usr/bin/php -q /home/votresite/www/maj_pornattitude.php > /dev/null 2>&1

Cette ligne exécutera le script php pour mettre à jour la liste des vidéos pornattitude tous les jours, à 2h30 du matin, et ainsi votre intégration sql profitera d’une mise à jour regulière et donc de nouveau contenu indexable par les moteurs 😉

Comment récupérer les différents chemin sur mon serveur ?

Une des petites difficultés des crons pour les néophytes de la technique reste de trouver le bon chemin pour l’executable php, et les fichiers du site qui ne se trouvent pas toujours au même endroit.

Voyons donc ensemble les commandes qui nous permettront de recupérer les bons chemins quelques soient les configurations de vos serveurs.

1/ trouver le chemin d’un executable

Pour retrouver l’executable php, la commande suivante nous sors directement le chemin : which php

2/ trouver le chemin réel d’un fichier php de notre site

Souvent les scripts vous demanderonts le chemin complet pour vos fichiers hebergés, et non pas les chemins du type www.monsite.com/fichier.php qui eux impliquent une inclusion distante.

Pour celà rien de plus simple, créer un fichier truc.php et entrez y le code php suivant :

<?php echo realpath(‘nom_dun_fichier_present_dans_le_dossier.php‘); ?>

Et vous voilà donc avec toutes les variables nécessaires à l’élaboration de votre ligne de cron 😉

Cool, mais .. je met ça où et comment ?

Une fois le tout terminé, il faut maintenant rajouter notre ligne à notre fichier crontab qui lui gère toutes les tâches planifiées de notre serveur, pour celà connectez vous en root sur votre ssh et suivez les indications 🙂

tappez crontab -e qui ouvrira votre fichier crontab dans l’éditeur texte par défaut, et rajoutez la ligne que nous venons d’élaborer ensemble !

Voilà le tour est joué 😉

Très bonne promo à tous et n’hésitez pas à nous contacter en cas de soucis, nous sommes là pour vous aider!

Mehdi