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

Как развертывать новые и измененные файлы только через FTP

Я работаю в компании, которая в некоторых случаях ДОЛЖНА развертывать веб-приложения php через FTP. Я занимаюсь автоматизацией процесса развертывания, и мне нужно написать сценарий для FTP, чтобы файлы в промежуточную и производственную среды.

Требования:

  1. Следует передавать только новые или измененные файлы на удаленный сервер

Ограничения:

  1. Никакого доступа к оболочке в удаленных средах
  2. Невозможно использовать rsync
  3. Доступен только FTP

Мой вопрос: можно ли использовать какую-либо утилиту на основе FTP, которая удовлетворяет этим требованиям, а не писать мою собственную?

Пока вы управляете клиентом, вы можете использовать FTPFS на клиенте, а затем выполнить rsync локального каталога в явно локальный, но действительно смонтированный через FTPFS каталог.

Я понимаю, что FTPFS теперь является частью LUFS.

редактировать: Я бы хотел дать ссылку на учебник, но обычно я просто начинаю с вики проекта, и, похоже, что-то не так с sourceforge прямо сейчас. CurlFTPFS, который, похоже, основан на cURL и FUSE, можно найти здесь, и установка / размонтирование там кажется такой же простой, как:

$ mkdir sunet
$ curlftpfs ftp://ftp.sunet.se/ sunet/
$ cd sunet/
$ ls -l
total 0
Dr-xr-xr-x   3 root root        96 Feb 23  2004 bin
dr-xr-xr-x   2 root root        72 Mar  2  2004 dev
dr-xr-xr-x   2 root root        48 Feb 23  2004 etc
dr-xr-xr-x   2 root root       120 Feb 23  2004 lib
-rw-r--r--   1 root root 622187310 Mar 11 06:13 ls-lR
-rw-r--r--   1 root root  76389037 Mar 11 06:15 ls-lR.gz
drwxrwxr-x  37 root root      1272 Feb 27 14:17 pub
dr-xr-xr-x   3 root root        72 Feb 23  2004 usr
$ cd ..
$ fusermount -u sunet/

Мы используем ant для написания сценариев и автоматизации. Задача ant FTP имеет параметр "зависит", который передает только новые или измененные файлы. http://ant.apache.org/manual/Tasks/ftp.html

Может быть, что-то вроде ncftp для синхронизации каталога с сервером. Вы можете пойти так далеко, что бросили это в capistrano (переопределите: разверните и запустите команду ncftp, как только вы проверите версию, которую хотите развернуть).