我正在运行以下脚本来监控新文件的创建,但速度不够快。如果同时添加两个文件,则此脚本只会对第一个文件执行操作。
有没有什么方法可以调整它,使其运行得更快或有所不同?
#!/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
我还添加了一些变量的引用,以考虑文件名中带有空格的可能性。