Недостаточно быстро сообщать
Я запускаю следующий скрипт для мониторинга создания новых файлов, но он не достаточно быстрый. Если два файла добавляются одновременно, то этот скрипт выполняет действия только с первым.
Есть ли способ настроить это, чтобы работать быстрее или по-другому?
#!/bin/sh
WATCHED_DIR=/var/www/magento/media/catalog/product
UPLOAD_DIR=/cloudfiles/magento/media/catalog/product
while :
do
echo 'Watching directory: '$WATCHED_DIR 'for new files'
while file=$(inotifywait -q -e create -r "$WATCHED_DIR" --format "%w%f")
do
loc=$file
rem=$UPLOAD_DIR${file#$WATCHED_DIR}
rsync --ignore-existing --inplace -q $loc $rem &
done
done
1 ответ
Решение
Я предлагаю использовать -m, --monitor
возможность inotifywait
, следующим образом:
#!/bin/sh
WATCHED_DIR="/var/www/magento/media/catalog/product"
UPLOAD_DIR="/cloudfiles/magento/media/catalog/product"
echo "Watching directory: $WATCHED_DIR for new files"
inotifywait -m -q -e create -r "$WATCHED_DIR" --format "%w%f" |
while read file
do
loc="$file"
rem="$UPLOAD_DIR${file#$WATCHED_DIR}"
rsync --ignore-existing --inplace -q "$loc" "$rem" &
done
Я также добавил некоторые кавычки в переменные, чтобы учесть возможность имен файлов с пробелами.