Небольшой обзор и тест zImageOptimizer.sh — скрипта для оптимизации изображений прямо на сервере.
Скрипт автором написан на bash, при запуске он проверит, установлено ли нужное для оптимизации ПО и предложит доустановить утилиты при необходимости. Забираем скрипт с Github’а, делаем его исполняемым и проверяем, установлено ли всё что скрипту потребуется для работы:
$ curl -O https://raw.githubusercontent.com/zevilz/zImageOptimizer/master/zImageOptimizer.sh $ chmod +x zImageOptimizer.sh
$ ./zImageOptimizer.sh -c Checking tools... jpegoptim...[FOUND] jpegtran...[FOUND] djpeg...[FOUND] cjpeg...[FOUND] pngcrush...[FOUND] optipng...[FOUND] pngout...[FOUND] advpng...[FOUND] gifsicle...[FOUND] All tools found
Если какие-то утилиты скрипт не найдёт, то перед запуском процесса оптимизации, он предложит доустановить их (разумеется, для установки скрипту потребуются права суперпользователя).
Сам процесс оптимизации запускается командой (путь до директории обязательно нужно указать полный):
$ ./zImageOptimizer.sh -p /home/user/images
И вот здесь важный момент — скрипт, в процессе работы файлы перезапишет, так что если для нас это критично, то перед запуском, мы делаем бекап важных для нас данных (ну или проверяем что такой бекап у нас имеется).
Время работы скрипта зависит от количества файлов, на самом простом дроплете DO, обработка 1000+ файлов, которые уже ранее были немного оптимизированы заняла чуть больше 6 минут.
Input: 111.7Mb Output: 87.4Mb You save: 24.2Mb / 21.74% Optimized/Total: 1171 / 1171 files Total optimizing time: 6 minutes and 25 seconds
Из удобных дополнительных параметров здесь имеется возможность указания исключений, и настройка выборки файлов за определённый временной промежуток. Т. е. если мы, например, работаем с ресурсом, на котором регулярно появляются новые изображения, запуск скрипта мы можем настроить в планировщике, при этом, сделать всё так, что бы обрабатывались только новые изображения.
Вместо заключения — наглядный пример работы. Изображение до оптимизации и после того как его обработает скрипт. Выглядит очень хорошо, на мой взгляд.
Optimizing... [1/1] /home/user/images/oimage.jpg... [OPTIMIZED] 12941.4Kb -> 1994.5Kb Input: 12.6Mb Output: 1.9Mb You save: 10.6Mb / 84.59% Optimized/Total: 1 / 1 files Total optimizing time: 17 seconds