Un petit script pour optimiser les images sur votre serveur

De temps en Google me donne sur mon panneau de contrôle AdSense divers conseils pour optimiser les performances de mes sites. Je me suis décidé à en prendre un en compte : l’optimisation du poids des images. Mais comme je suis du genre un peu flemmard, pas question d’optimiser manuellement chaque image avant de l’ajouter au site. J’ai donc écrit un petit script pour le faire.

Ce script est à priori utilisable sur à peu près tous les serveurs dédiés ou virtuels sous Linux, pour peu qu’OptiPNG et jpegoptim y soient installés.

Si vous utilisez Ubuntu sur votre serveur (marche peut-être aussi avec une Debian ou autre distribution dérivée de Debian), l’installation peut se faire aisément via apt-get :

Ensuite, ce script va permettre d’automatiser le traitement :

Avant d’exécuter le script, insérez la liste des répertoires à traiter dans la variable SITES à la ligne 5. Vous pouvez également modifier la variable MTIME pour traiter des fichiers plus anciens, notamment pour la première exécution, et la variable COMPR pour modifier le niveau de compression d’OptiPNG (de 0 à 7).

Le script ira alors chercher toutes les images JPEG et PNG datant de moins de MTIME jours dans ces répertoires puis leur appliquera l’optimisation. En plus du filtre sur les fichiers datant de moins de MTIME jours, le script conserve sa date de dernière exécution dans le fichier .optimg_run, pour ne traiter que les fichiers postérieures à cette exécution. Pensez à supprimer ce fichier si vous ajoutez de nouveaux dossiers à la liste.

Le traitement des fichiers JPEG est très rapide, mais on ne peut pas en dire autant pour les PNG… Si vous en avez beaucoup, je vous recommande de réduire le niveau de compression sur la passe initiale.

Une fois le script paramétré, il n’y a plus qu’à l’ajouter à la crontab pour une exécution programmée (avec une fréquence d’exécution en accord avec la valeur de MTIME) :

Par exemple, pour une exécution hebdomadaire le dimanche à 4h du matin, ajoutez la ligne suivante dans la crontab :

Et voilà, si tout se passe bien vos images devraient automatiquement être optimisées sans que vous ayez à vous en préoccuper 🙂

5 réflexions sur « Un petit script pour optimiser les images sur votre serveur »

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.