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

Автоматически запускать сценарий для загруженного файла FTP

Есть ли способ запустить сценарий над файлом, который был загружен на FTP-сервер.

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

  1. Cron Job находит новые файлы на FTP и обрабатывает их каждую минуту.
  2. Напишите демон для отслеживания журнала загрузки файлов и использования этой информации для обработки файла.

Есть ли лучший способ или директива, которую я могу установить на сервере для запуска скрипта при загрузке всех файлов?

Обновление: ОС Linux

Вы не указываете свою ОС, но если вы работаете с Linux, вы можете подключить inotify, то есть подсистему ядра, которая запускается при возникновении событий файловой системы. Это должно дать вам гораздо лучшее время отклика, чем cron, который работает только с точностью до одной минуты.

Следующая ссылка поможет вам начать работу, но есть Perl, Python и множество других привязок.

http://inotify-tools.sourceforge.net

Если сменить демон ftp не проблема, то чистый ftpd имеет эту функциональность.

Надеюсь это поможет.

Вот два общих подхода к этому:

  1. Используйте функции, встроенные в ProFTP (если он существует) или другой продукт FTP-сервера
  2. Попросите какой-нибудь процесс операционной системы или задание cron (как вы упомянули в своих # 1 и 2) следить за файлом, или лучше, чем опрос, следить за событиями файловой системы и реагировать соответствующим образом. Видеть https://stackoverflow.com/questions/324258/is-there-an-equivalent-to-the-net-filesystemwatcher-in-the-linux-world.

Самый простой подход - использовать функциональные возможности, встроенные в FTP-сервер, если он существует. Если нет, вы, вероятно, можете загрузить код наблюдателя за файлами или уже написанный сценарий оболочки, который вы можете cron.