Оптимизация изображений на сервере скриптом
Ставим софт:
#deb-based apt-get install -y jpegoptim optipng #rpm-based yum install -y jpegoptim optipng
Засовываем это в файл optimages.sh:
#!/bin/bash /usr/bin/find $1 -type f -iname '*.jpg' -exec /usr/bin/jpegoptim -q -f -o --strip-all {} \; >/dev/null 2>&1 /usr/bin/find $1 -type f -iname '*.png' -exec /usr/bin/optipng -quiet -o7 {} \; >/dev/null 2>&1
Запускаем:
./optimages.sh /var/www/user/site.com
Предварительно на всякий случай рекомендуется сделать бэкап всех изображений:
(каждый символ в команде очень важен!)
rsync -avh --include '*/' --include '*.jpg' --include '*.png'
--exclude '*' /var/www/user/site.com/ /var/backup/site-com-images/
Если вдруг понадобится откатить:
(ни в коем случае не терять завершающий слеш в путях!)
rsync -a /var/backup/site-com-images/ /var/www/user/site.com/
Если вдруг хочется запускать процедуру регулярно по расписанию для всех новых изображений, появившихся за последние пару часов, скрипт станет таким:
#!/bin/bash /usr/bin/find $1 -type f -iname '*.jpg' -mmin -120 -exec /usr/bin/jpegoptim
-q -f -o --strip-all {} \; >/dev/null 2>&1 /usr/bin/find $1 -type f -iname '*.png' -mmin -120 -exec /usr/bin/optipng
-quiet -o7 {} \; >/dev/null 2>&1
И в крон, на запуск каждые 2 часа:
#deb echo '0 */2 * * * /root/optimages.sh /var/www/user/site.com' >> /var/spool/cron/crontabs/root #centos echo '0 */2 * * * /root/optimages.sh /var/www/user/site.com' >> /var/spool/cron/root
Если вдруг хочется залоггировать всё что сделал скрипт:
#!/bin/bash /usr/bin/find $1 -type f -iname '*.jpg' -mmin -120 -exec /usr/bin/jpegoptim -f -o --strip-all {} \;
>>/var/www/user/optimages.log 2>&1 /usr/bin/find $1 -type f -iname '*.png' -mmin -120 -exec /usr/bin/optipng -o7 {} \;
>>/var/www/user/optimages.log 2>&1
Комментарии ()
Вы должны авторизоваться, чтобы оставлять комментарии.