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