((/public/Divers/cron-grafiti.png|ça cron ?|L|ça cron ?, fév. 2010))Voilà 3 mois que j’ai écris un billet intitulé avec autant de mauvais goût que celui que vous êtes en train de lire : [ça cron !|/post/2009/ca-cron] Mise à part leur entrée en matière un peu pilotractée, ces 2 billets abordent le même sujet : les crons. __Cron__, c’est un système sous Linux qui permet de déclencher un événement à intervalle régulier. Par exemple on peut exécuter tous les jours un script PHP qui nettoie une base de données, ou une ligne de commande Shell qui ouvre un lecteur audio et joue un titre au hasard. Bref, c’est un outils permettant de faire pas mal de choses intéressantes et qui font un peu rêver. Comme je l’expliquais précédemment, j’ai trouvé mon bonheur pour apprendre à utiliser cron sur le site Code18 : [Installer un cronjob|http://code18.blogspot.com/2009/10/installer-un-cronjob.html], mais à l’époque, je n’avais pas eu le temps de tester. Aujourd’hui, c’est chose faites ! Ce petit billet a donc pour but de retracer les grands étapes d’utilisation d’un cron. !!!Ce dont on a besoin * Un serveur accessible en ligne de commande sur lequel cron est installé Pour vérifier si cron est utilisable, il faut utiliser la ligne de commande qui liste les événements programmés : /// crontab -l /// Si cron est utilisable la liste des événements programmés s’affichera, ou s’il n’y en a pas, un message du style : @@no crontab for ******@@.%%% Dans le cas contraire : @@-bash: /usr/bin/crontab: Permission denied@@ ou @@-bash: crontab: command not found@@. Pour cela, il faut bien sûr se connecter auparavant au serveur en SSH : /// ssh user@serveur /// !!!Ajouter ou modifier un événement Il faut utiliser la ligne de commande : /// crontab -e /// Celle-ci ouvrira le fichier crontab (contenant les événements programmés) sous l’éditeur par défaut, vim par exemple.%%% Pour ma part, sachant que je suis chez 1and1, ce fichier contient : /// # m h dom mon dow command * * * * * /usr/local/bin/php /kunden/***/htdocs/sites /// [infinite loop|http://code18.blogspot.com/2009/10/installer-un-cronjob.html] (l’auteur de Code18) explique ce que signifie cette ligne de commande. Pour résumer on peut remplacer chaque étoile par les valeurs suivantes (l’étoile signifiant « toutes les \[minutes|heures|...]« ) : * 0-59 ou * -> minute * 0-23 ou * -> heure * 0-31 ou * -> jour du mois * 0-12 ou noms ou * -> mois * 0-7 ou noms ou * -> jour de semaine Pour ma part, j’ai remplie le deuxième argument (/usr/local/bin/php) en utilisant : @@which php@@ sur mon serveur 1&1. Et le dernier (/kunden/***/htdocs/sites) en utilisant simplement @@pwd@@ dans un de mes répertoires nommé sites/. !!!Quelques idées d’utilisation Pour ma part les cron risquent de bien me servir pour mettre à jour une base de données à partir de flux RSS sans ralentir mon site durant la journée. Cet été, cela m’aurait bien servi pour mettre à jour le cache ou les sitemaps mais bon trop tard. La question que je me pose, c’est si cela vaut le coup de faire un site proposant un service pour programmer l’envoi d’e-mails en différé. Fonction utile, non disponible sous Gmail par exemple, et à ma connaissance peu utilisé sous Outlook ou autre. A voir…
Catégories
- Apache (6)
- Avent (14)
- CMS (16)
- Geekeries (39)
- HTML et CSS (4)
- Informations (12)
- Java (19)
- Javascript (8)
- L'anecdote du week-end (4)
- PHP (28)
- PHP objet (19)
- Projets (4)
- Référencement (4)
- SQL (9)
- XML (3)
- XMPP (4)
Tags
30 minutes Anecdote Ant Apache attribut base de données C class CMS constructeur CSS date design Dotclear Eclipse Expression Google Java Java EE Javascript Joomla jQuery Ligne de commande Linux Maven MySQL méthode Optimisation PgSQL PHP POO Projet public regex Référencement SEO Shell SQL tutoriel Url Rewriting Wallpaper Windows Wordpress XHTML XML