Назад | Перейти на главную страницу

FTP FileWatcher

Итак, я нахожусь в этом небольшом затруднительном положении, когда я застрял, наблюдая за несколькими папками ftp, чтобы увидеть, добавлены ли к ним новые файлы. Если они это сделают, ему необходимо вызвать событие с именем файла. Тем самым сообщая другому пользователю загрузить этот файл.

Это довольно простой объект в изготовлении, мне просто было любопытно, знает ли кто-нибудь, насколько дорогостоящей будет эта операция?

Я планирую использовать команду NLIST, потому что мне не нужна информация о размере файла, и в папке не будет подкаталогов. В имени каждого файла в папке будет ровно 25 символов.

В папке может быть от 10 до «может быть» пары тысяч (максимум около 2000) файлов (обычно на нижнем уровне, 100–300, но в настоящее время они растут).

Размер файлов составляет от 250 Кбайт до очень маловероятных 10 Мбайт (обычно в диапазоне от 250 Кбайт до 4 Мбайт).

Возможно, там может быть до нескольких сотен папок (в этом случае я мог бы изменить частоту просмотра в зависимости от количества папок), но в настоящее время их всего несколько (6-10).

Также будет несколько логинов для ftp-сервера, разные логины будут иметь доступ к разным папкам.

Я не прошу о реализации, просто если кто-то знает о FTP из первых рук или из вторых рук, как это может повлиять на мою сеть.

Я не возражаю против установки времени хранения файлов или изменения частоты, с которой я проверяю наличие новых файлов.

Инструменты Inotify:

inotifywait -e create -rmq $watch_directory | while read i; do
    file=$(echo $i | awk '{print$3}') 
    dir=$(echo $i | awk '{print$1}')
    # echo ${dir}${file}
done

Если у вас есть доступ к FTP-серверу через оболочку, тогда dnotify - ваш друг. Уведомление об изменении каталога.

http://linux.die.net/man/1/dnotify