Automatiser ses tâches : webcron, un cron pour tous

Question presque philosphique : un code peut-il se déclencher de lui-même ? Non, l’autonomie est le propre de l’intelligence. C’est pourquoi je cherchais depuis quelques temps déjà un moyen pour déclencher un programme de manière autonome sans trop d’espoir. L’idée première est bien évidemment la sauvegarde automatique et incrémentielle des bases de données à heures fixes; mais c’est aussi des statistiques mises à jour une fois par jour (très pratique pour ceux qui, comme moi, ont le nom du fichier de statistiques qui est renommé – incrémenté – tous les jours), ou tout ce qui peut passer par la tête.

Je réfléchissais sur l’écriture d’un programme, mais je plantais toujours sur le même problème : il faudrait exécuter le programme. Je me rapprochais de plus en plus vers une exécution liée à la visite d’une page, conscient que c’est pas l’idéal : je n’ai aucune maîtrise sur le nombre de fois qu’est exécuté le script. Trop régulièrement, il pourrait – si les tâches sont volumineuses – monopoliser désagréablement la bande passant, ou trop rarement, bein, il ne me servirait à rien.

J’ai alors entendu parler de Cron, un daemon permettant la réalisation automatique de mes scripts. Le problème, c’est que tout aussi geek que je puisse être parfois, je ne tourne pas sur unix; même pas – encore, attendons Windows Vista – sur Linux. Ma déception sous le bras, j’ai continué mes recherches, et suis tombé sur le Saint-Graal : Webcron. Extrait du site :

Webcron vous permettra d’effectuer des taches à heure fixe en allant chercher une page sur votre site. Par exemple, sauvegarder votre base de données, pour cela il vous suffit de faire un script sauvegarde_base.php et dans ce script vous allez enregistrer votre base dans un fichier ensuite ajoutez une tache dans votre Webcron pour effectuer la requête


Allelujah ! J’ai quand même déchanté pendant un moment, tant RIEN n’est expliqué. Rien. C’est à peine si je savais comment configurer le truc. Et pourtant, il a 4 ans d’âge, ce service; à croire qu’il veut rester le plus hermétique possible. Beaucoup de choses sont censées aller d’elles-mêmes. La viste de la « documentation » achèvera de vous convaincre sur le bien-fondé de mes affirmations. (La documentation se révèlera toutefois utile plus tard.) A ce manque d’information, aux carences ergonomiques, il faut aujouter un forum à peine utilisable; oublions bien vite l’emballage pour nous concenter sur le contenu.

Installation de Webcron

Je reporte ici mes expériences, peut-être aideront-elles quelqu’un à perdre moins de temps :

  1. Qu’est-ce qu’on trouve sur Webcron ? Certainement la chose la plus difficile à appréhender. Ce site sert à deux choses :
    1. s’incrire afin d’automatiser les tâches (voir point 2), soit Webcron proprement dit.
    2. télécharger un fichier pour sauvegarder une base de données , soit Webcronsave; nous explorerons l’une des utilisations de webcron via l’une des possibilités mise à disposition (voir point 3) par le site webcron.
  2. Webcron, ça a l’air très bien. Mais c’est quoi ? Et comment l’utilise-t-on ? C’est là que j’ai planché.L’intérêt de ce service (gratuit, rappellons-le) est de sauvegarder régulièrement ses bases de données, ou tout autre script que vous aurez mis sur pied. On peut même, avec un peu d’imagination, réaliser un script PHP qui lui-même appelle d’autres scripts PHP. Pour autant que l’on veut exécuter à la même fréquence tous les scripts inclus dans le premier, bien sûr.Ce service se révélera rapidement indispensable pour les webmasters en herbe qui n’hébergent pas chez eux leur site, mais le font faire par des professionnels. Partez sans soucis en vacances grâce à ce service, une intelligence artificielle s’occupera des mises-à-jour de tout à votre place.
    1. En premier lieu, il faut s’inscrire sur Webcron. Un email, un pseudo, et vous voilà détenteur d’un compte qui va vous permettre de…
    2. Gérer vos scripts automatisés. En allant dans « mes tâches« , vous allez pouvoir enregistrer gratuitement jusqu’à 3 tâches (décision récente du webmaster devant la faible rentabilité du site). Ces tâches sont les appels faits avec la régularité d’un métronome de webcron. C’est le site qui, en fonction de la fréquence souhaitée, va se connecter à l’adresse web que vous allez lui indiquer. Il faut choisir « nouvelle tâche », ce qui permet d’avoir accès à la création de celle-ci.

    Le reste est assez intuitif : remplir l’adresse web que l’on souhaite appeler, renseigner (si nécessaire) les user et password, puis la fréquence de lancement. Dans la première case, il convient d’indiquer « http://votresiteweb.com/webcronsave.php?action=savewebcron » si vous souhaitez utiliser le fichier de base de webcron (voir point 3, le supplément « ?action=savewebcron » permet l’appel direct de la sauvegarde). La base de donnée prévue dans votre configuration sera ainsi sauvegardée à la fréquence à laquelle vous aurez programmé Webcron. Après avoir validé, il faudra encore activer la tâche, mais ce sera votre dernier labeur.

  3. Puis il faut (enfin, pour cet exemple développé) télécharger le dernier fichier de sauvegarde de base de donnée, qui se trouve dans le drôlement nommé webcronsave.php. Un répertoire download aurait amélioré l’ergonomie du site.
    1. Déplacez le fichier obtenu (webcronsave.php) dans un répertoire d’administration de votre site web. Le répertoire peut s’appeler (ie) « webcronsave », et contiendra obligatoirement un répertoire « webcronsave ». C’est dans ce dernier que seront sauvegardés les fichiers de config, de base de donnée, et un .htaccess.
    2. Ensuite, il faut configurer Webcronsave. Ce n’est pas ce qu’il y a de plus compliqué, l’interface de configuration ressemble à tout ce que l’on peut rencontrer avec la gestion des BDs. Un site que j’ai découvert lors de mes pérégrinations explique en image comment correctement installer.

Une bannière pour remercier le site, parce que maintenir un vrai service gratuit sur le net d’aujourd’hui, il fallait le faire.

Astuces et fine tuning

Le script de sauvegarde de base de données (webcronsave.php) n’a rien de poétique. Il se comporte même de manière assez rude. Remarquez, pour sauver des BDs, il vaut mieux privilégier le robuste au poétique.

J’ai quand même fais deux modifications du code : l’élimination du check de password et l’affichage d’un mot indiquant que tout s’est déroulé correctement.

  1. Je protège déjà mes répertoires à coup de .htaccess, pas besoin qu’on vienne effectuer une double vérification, risquant même de poser problèmes suivant les configuration. Dans webcronsave.php, aller à la ligne 575, et commentez avec un « /* » le début de ligne, que vous refermerez à la ligne 588 par un « */ » en fin de ligne. Toute cette partie ne s’exécutera plus, et c’est tant mieux. Assurez-vous de protéger toutefois ce répertoire par d’autres moyens. C’est mon cas, mais pas forcément le vôtre.
  2. Par défaut, le script webcronsave.php?action=savewebcron n’indique pas s’il est réussit ou non. Seul est prévu l’affichage d’une magnifique page blanche, ce qui ne me rassure jamais. J’aime que les choses soient clair, en amour comme en informatique. J’ai ajouté à la ligne 601 (après juste le checkFile(); ) un echo 'ça a marché';, ce qui m’affiche la réussite ou non de mon script. C’est pas nécessaire, mais la tranquilité n’a pas de prix.

Concurrence :

A ma connaissance, il existe deux autres sites qui font la même chose, mais je ne les ai pas testé. Il s’agit de cronjob4you.at et de cronjob.de. Ce dernier requiert toutefois une compréhension irréprochable de l’allemand.

Ou encore un troisième site concurrent (merci à agilis) : crontab.fr.

27/10/05 : Revu la structure de l’article pour une plus grande clarté, selon les remarques de Dillon. Et correction des fautes d’ortho :/

Cet article a 11 commentaires

  1. Anonyme

    Je souhaite sauvegarder ma base de données
    Comment faire pour la sauvegarder webcron. Je suis allé sur l’aide Je n’ai rien compris.
    Je me suis inscris je suis allé dans mes taches, rempli adresse url,
    Faut il mettre le login et le mot de passe du serveur ou se trouve la base de données
    Url : http://adresse site.fr/webcronsave.php
    login taratata
    mot de passe *****
    heure17h
    Jours mois anneée ****
    enregistrer
    Sur mon site j’aicrée un répertoire webcron
    puis à la racine de mon site j’ai mis le fichier webcronsave.php
    Faut il le modifier?
    merci de m’aider c’est important
    Donner moi des indications
    quels sont mes erreurs
    Je n’y comprends en BDD et en php
    merci

  2. jcv

    Chez moi, ça n’a jamais fonctionné, alors je t’avoues que je n’ai pas remarqué 🙂

  3. aKhEnAtHoN

    J’ai essayé d’utiliser crontab.fr, impossible de s’inscrire ou de s’identifier, et ce depuis 2 semaines.

    Est-ce que le site est laissé à l’abandon ?

  4. Ping : >WebCron - Forum

  5. jcv

    De gratuit, il y a celui qui m’a été recommandé par agilis : http://www.crontab.fr/

    Sa précision va jusqu’aux minutes. Je n’en connais aucun qui aille jusqu’aux secondes, et j’imagine mal un service gratuit le faire.

  6. cisland

    Bonjour,
    Je voudrais savoir si vous connaissiez un cron qui permettrait de regler les minutes (voir les secondes) ?
    Merci d’avance

  7. jcv

    crontab.fr ? Je suis allé voir… moi qui me plaignais du manque d’infos avec webcron, je suis gâté 🙂

    Je l’ajoute à ma liste. Webcron (et d’autres) ne propose que 3 tâches (au départ), il peut donc être utile d’avoir plusieurs adresses. Merci agilis !

  8. agilis

    Il y a aussi crontab.fr dans la concurence.

  9. jcv

    Intituler ton post dans le forum de Webcron “ce qu’est webcronâ€? n’est-ce pas un peu trop affirmatif ?Mettre “ce que je pense de webcronâ€? aurait été un peu plus objectif.

    Merci pour ton commentaire, Dillon. Je pense que tu as soit dû survoler mon article, soit mon article a un ton que je ne voulais pas lui donner : loin de moi l’idée de critiquer l’efficacité de webcron, ou l’investissement d’une équipe tout autour. Au contraire, c’est parce qu’il est très efficace que je voulais le rendre plus disponible. Plus encore, je voulais rendre la technologie cron disponible aux éventuels webmasters qui, comme moi, ne sont que des informaticiens du dimanche. Il n’est pas évident pour tout le monde (en tout cas pour moi) de comprendre ce qu’un daemon peut apporter à un site web.

    Par ailleurs, je crois bien avoir mentionné que la sauvegarde des BDs n’est qu’une application parmi d’autres, non ?

    J’utilise webcron depuis environ un an et je n’ai jamais éprouvé de difficulté à configurer quoi que ce soit, ni à utiliser le forum.

    Si tu as dès le départ réussi à faire fonctionner webcron, avec des connaissances pareilles aux miennes, tant mieux. Mais peut-être qu’après une année d’utilisation, tu en maîtrises les rouages. A lire tes interventions sur le forum officiel, je n’en doute d’ailleurs pas ! Je ne te soupçonne pas de partialité, mais en tout cas d’expertise extrême.

    Quant au forum… il est tout sauf pratique. Des petits forums gratuits parsèment le web, et je trouve (mais ça n’engage que moi) celui retenu- peut-être fait maison – sur webcron particulièrement inutilisable. Je crois que je n’ai pas à développer plus en avant cela.

    Webcronsave n’est sûrement pas parfait, mais tu n’ajoutes pas à sa clarté en mettant en a) la sauvegarde des BDD avec webcronsave et en b) l’automatisation des scripts : tu inverses l’ordre (chrono)logique des 2 fonctions, d’où peut-être ton impression que rien n’est expliqué. D’ailleurs, dans ta description, le “en premier lieuâ€? vient après l’étape 5 !

    Remarque très pertinante. Je vais changer l’ordre de ce pas. Merci !

    Edit : c’est fait, j’espère que c’est plus lisible maintenant.

    Webcron est d’abord ( depuis 4 ans ) un site pour exécuter automatiquement des scripts, comme cela est parfaitement indiqué dans la page d’accueil.

    Oui, mais j’ai beau eu chercher, je ne comprenais pas qu’il fallait s’inscrire sur le site pour lancer ces tâches automatiques. Je pensais que le fichier webcronsave.php était un… euh, le cron lui-même (merci de ne pas rire). Bein oui, aucune expérience de la chose, je ne comprenais pas le fonctionnement de base.

    Cet article était destiné avant tout à permettre la découvert de ce merveilleux outil. Si je critique la forme, ce qui t’as fait tiquer, je crois avoir mentionné suffisamment le bien que je pense du fond. Sinon, je ne me serais pas fendu de tout cela, je ne suis pas testeur d’outils web pour un magazine 🙂

  10. Dillon

    Je suis un internaute lambda sans aucun rapport avec le webmestre de Webcron.
    J’utilise webcron depuis environ un an et je n’ai jamais éprouvé de difficulté à configurer quoi que ce soit, ni à utiliser le forum.

    Webcronsave n’est sûrement pas parfait, mais tu n’ajoutes pas à sa clarté en mettant en a) la sauvegarde des BDD avec webcronsave et en b) l’automatisation des scripts : tu inverses l’ordre (chrono)logique des 2 fonctions, d’où peut-être ton impression que rien n’est expliqué. D’ailleurs, dans ta description, le « en premier lieu » vient après l’étape 5 !
    Webcron est d’abord ( depuis 4 ans ) un site pour exécuter automatiquement des scripts, comme cela est parfaitement indiqué dans la page d’accueil. Ensuite, à la demande de nombreux utilisateurs, le Webmestre a proposé (depuis juin 2005) un script pour automatiser les sauvegardes des bases de données : webcronsave.php. Même si pour beaucoup d’utilisateurs la sauvegarde de base de données est la principale application, ce n’est qu’une cerise sur le gâteau de webcron.

    Intituler ton post dans le forum de Webcron « ce qu’est webcron » n’est-ce pas un peu trop affirmatif ?Mettre « ce que je pense de webcron » aurait été un peu plus objectif.

Laisser un commentaire