LINUX.ORG.RU
решено ФорумAdmin

Конвертер webp на лету, для Linux веб сервера.

 


0

2

Есть задача создавать копии графических файлов на сервере в формате webp.

Например: корень сайта /var/www/user/site.ru/, в нем есть несколько вложенных подкаталогов куда могут быть залиты png|jpg. И есть в корне подкаталог webp/ где лежат webp копии, с сохранением структуры вложенности каталогов.

Сейчас я по cron запускаю скрипт, сканирующий каталоги, и если появился новый файл, или есть разница времени модификации, то запускается cwebp и создается копия.

Вопрос в чем, на сервере много сайтов и частый обход каталогов затратная операция. Может есть другие варианты? смотрел в сторону icron но там вроде нет возможности мониторить подкаталоги. Еще есть мысль набросать на c++ слушателя fanotify на точке монтирования.

Я такую задачу решал следующим образом через фейсбучного вотчмена вылавливал собыия изменений файлов и складывал в отдельный каталог список (каждое событие в новый файл), а дальше в баше while true крутился и обрабатывал файлы из полученного списка.

ya-betmen ★★★★★
()

А чем они заливаются? Если через какой-то скрипт, то можно прям из него конвертацию дёргать

Harald ★★★★★
()

Теоретически. Особо извращенный вариант.

Взять ФС со снимками и делать снимки и выковыривать разницу например zfs diff. Найденное конвертить

ism ★★★
()
Ответ на: комментарий от ism

Тоже не универсальный вариант, тут несколько серверов, где-то ext-4, а есть и контейнеры на simfs. Тут на питоне быстрее будет, я только думал что для этого лучше fanotify слушать, а все на inotify делают.

commetaR37
() автор топика
Ответ на: комментарий от commetaR37

Хотя cron выглядит предпочтительней в плане экономии ресурсов.

Возможно есть ФС способные на быстрое сканирование

Так же есть способы быстрого обхода множества файлов

Проблема третья: как посмотреть список файлов, если их много https://habr.com/ru/company/srg/blog/462967/

ism ★★★
()
Последнее исправление: ism (всего исправлений: 3)

есть мысль набросать на c++ слушателя fanotify на точке монтирования

This. Словить событие добавлении файла, и если он нужного формата — конвертировать. ЕМНИП, эта «сыстэма» называется inotify.

Korchevatel ★★★★★
()
Ответ на: комментарий от Harald

Вот я тоже об этом думаю, еще бы и ssh передачу файлов залогировать.

commetaR37
() автор топика
Ответ на: комментарий от ism

Так я уже через find обход делаю, нагрузка растет, диски тормозные. Если по крону часто гонять - не хорошо.

commetaR37
() автор топика

Для этого есть утилита pyinotify которая выводит все события в каталоге, включая подкаталоги с ключом -r

И есть куча примеров можно заточить под свои нужды. pyinotify examples

commetaR37
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.