Si vous hébergez plusieurs sites avec VestaCP et que vous cherchez un moyen d’optimiser toutes les images JPG et PNG dans le but d’améliorer le référencement, optimiser les temps de chargement, et tout simplement de gagner en espace disque voici comment procéder :
Installer jpegoptim et optipng
yum install jpegoptim optipng -y
Puis pour lancer l’optimisation :
for i in `/usr/local/vesta/bin/v-list-sys-users | awk '{if(NR>2)print}'`; do find /home/$i/web/ -name 'public_html' -type d -print0 | xargs -0 -I {} find {} -iname '*.jpg' -type f -print0 | xargs -0 -I {} sudo -H -u $i jpegoptim --strip-all {}; done
for i in `/usr/local/vesta/bin/v-list-sys-users | awk '{if(NR>2)print}'`; do find /home/$i/web/ -name 'public_html' -type d -print0 | xargs -0 -I {} find {} -iname '*.png' -type f -print0 | xargs -0 -I {} sudo -H -u$i optipng {}; done
Pour le premier vous pouvez aussi remplacer *.jpg par *.jpeg selon vos fichiers.
Il est recommandé de lancer les commandes dans un screen, particulièrement si vous avez un grand nombre d’images.
Le script se lance toujours selon l’utilisateur propriétaire des fichiers, ainsi les droits sont conservés.
Il est également possible de créer une tâche cron pour lancer le script d’optimisation de manière régulière :
nano /home/moncron.sh
VESTA=/usr/local/vesta export VESTA PATH=$PATH:/usr/local/vesta/bin export PATH for i in `/usr/local/vesta/bin/v-list-sys-users | awk '{if(NR>2)print}'`; do find /home/$i/web/ -name 'public_html' -type d -print0 | xargs -0 -I {} find {} -iname '*.jpg' -type f -print0 | xargs -0 -I {} sudo -H -u $i jpegoptim --strip-all {}; done for i in `/usr/local/vesta/bin/v-list-sys-users | awk '{if(NR>2)print}'`; do find /home/$i/web/ -name 'public_html' -type d -print0 | xargs -0 -I {} find {} -iname '*.png' -type f -print0 | xargs -0 -I {} sudo -H -u$i optipng {}; done
Un coup de chmod +x /home/moncron.sh puis ajouter la tâche cron avec crontab -e
0 0 * * * /usr/bin/bash /home/moncron.sh
A chaque lancement le script va repasser sur toutes les images, il aura beau détecter celles qui sont déjà optimisées, si vous avez plusieurs milliers d’images cela peut-être relativement long.