Как сделать выполнение ​​​inotify-tools с задержкой?

  • ushkom 26.10.2020
    Всем доброго времени суток. С помощью этой статьи: https://www.8host.com/blog/sozdanie-i-ispolzovanie-izobrazhenij-webp-dlya-uskoreniya-sajta/ (https://www.8host.com/blog/sozdanie-i-ispolzovanie-izobrazhenij-webp-dlya-uskoreniya-sajta/)
    Я конвертирую свои изображения на сайте в формат .webp. Есть два скрипта которые выполняются по крону:

    bash /webp-convert.sh /home/admin/web/ 5 2 * * *

    #!/bin/bash
    
    # converting JPEG images
    find $1 -type f -and \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.JPG" -o -iname "*.JPEG" \) \
    -exec bash -c '
    webp_path=$(sed 's/\.[^.]*$/.webp/' <<< "$0");
    if [ ! -f "$webp_path" ]; then
    cwebp -quiet -q 90 "$0" -o "$webp_path";
    fi;' {} \;
    
    # converting PNG images
    find $1 -type f -and \( -iname "*.png" -o -iname "*.PNG" \) \
    -exec bash -c '
    webp_path=$(sed 's/\.[^.]*$/.webp/' <<< "$0");
    if [ ! -f "$webp_path" ]; then
    cwebp -quiet -lossless "$0" -o "$webp_path";
    fi;' {} \;

    bash /webp-watchers.sh /home/admin/web/ 5 3 * * *

    #!/bin/bash
    echo "Настройка часов.";
    
    # watch for any created, moved, or deleted image files
    inotifywait -q -m -r --format '%e %w%f' -e close_write -e moved_from -e moved_to -e delete $1 \
    | grep -i -E '\.(jpe?g|png)$' --line-buffered \
    | while read operation path; do
      webp_path="$(sed 's/\.[^.]*$/.webp/' <<< "$path")";
      if [ $operation = "MOVED_FROM" ] || [ $operation = "DELETE" ]; then # если файл перемещен или удален
        if [ -f "$webp_path" ]; then
          $(rm -f "$webp_path");
        fi;
      elif [ $operation = "CLOSE_WRITE,CLOSE" ] || [ $operation = "MOVED_TO" ]; then  # если создается новый файл
         if [ $(grep -i '\.png$' <<< "$path") ]; then
           $(cwebp -quiet -lossless "$path" -o "$webp_path");
         else
           $(cwebp -quiet -q 90 "$path" -o "$webp_path");
         fi;
      fi;
    done;

    Все хорошо работает, но есть одна проблема. Иногда бывает что при загрузки пользователем изображения копия .webp создается битой. Я предполагаю что конвертация происходит до того как изображение полностью загружено, возможно это не так.
    Мой вопрос, в чем может быть проблема, и для тестирования, как заставить ​​​inotify-tools выполнять с небольшой задержкой, это бы исключило мою теорию. Всем заранее спасибо за помощь.