Dans pas mal de tutoriaux Awstats, on parle de la possibilité de d'exécuter la commande de mise à jour dans une crontab. On a par exemple :


0 0-23/2 * * * perl /var/www/awstats/awstats.pl -config=blog.anotherhomepage.org -update

Cet exemple met à jour la base awstats de blog.anotherhomepage.org toutes les deux heures. Quand on a un seul hôte sur son serveur, c'est amplement suffisant. Oui, mais je n'ai pas que le blog. J'ai aussi la section téléchargements, le webmail, le blog de Vlad, de Dinou, et d'autres trucs. Pour le moment, c'est 9 fichiers de configuration Awstats (excepté le modèle) qui doivent être mis à jour régulièrement. Et à chaque nouveau site, c'est une configuration à écrire, et à ajouter dans la crontab.

Alors certes un coup de sed et un copier-coller dans la crontab, c'est pas la mort, mais pourquoi faire les deux quand on peut économiser des lignes dans la crontab? Tout simplement en utilisant awstats_updateall.pl :

----- awstats_updateall 1.0 (build 1.15) (c) Laurent Destailleur -----
awstats_updateall launches update process for all AWStats config files (except
awstats.model.conf) found in a particular directory, so you can easily setup a
cron/scheduler job. The scanned directory is by default /etc/awstats.

Usage:  awstats_updateall.pl now [options]

Where options are:
  -awstatsprog=pathtoawstatspl
  -configdir=directorytoscan
  -excludeconf=conftoexclude[,conftoexclude2,...] (Note: awstats.model.conf is always excluded)

Donc, pour transformer 9 lignes de crontab en une, j'ai inséré dans la crontab :

15 0-23/2 * * * perl /usr/bin/awstats_updateall.pl now -awstatsprog=/var/www/awstats/awstats.pl -configdir=/etc/awstats/

On pensera à remplacer "/usr/bin/awstats_updateall.pl" par la localisation du script, et on fera de même pour "/var/www/awstats/awstats.pl".

Comment ai-je pu faire avant? ;-)