inotify não rápido o suficiente

4

Estou executando o seguinte script para monitorar a criação de novos arquivos, mas não é rápido o suficiente. Se dois arquivos forem adicionados ao mesmo tempo, esse script só executará o primeiro.

Existe alguma maneira de ajustar isso para funcionar mais rápido ou diferente?

#!/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
    
por Christian 09.02.2012 / 14:51

1 resposta

2

Sugiro usar a opção -m, --monitor para inotifywait , da seguinte maneira:

#!/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

Eu também adicionei algumas citações às variáveis, para levar em conta a possibilidade de nomes de arquivos com espaços.

    
por enzotib 09.02.2012 / 15:06

Tags