inotify 不够快

inotify 不够快

我正在运行以下脚本来监控新文件的创建,但速度不够快。如果同时添加两个文件,则此脚本只会对第一个文件执行操作。

有没有什么方法可以调整它,使其运行得更快或有所不同?

#!/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, --monitorinotifywait方式如下:

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

我还添加了一些变量的引用,以考虑文件名中带有空格的可能性。

相关内容