Como implantar arquivos novos e alterados somente via FTP

2

Estou trabalhando para uma empresa que em algumas circunstâncias tem que implantar aplicativos web php via FTP. Estou no processo de automatizar o processo de implantação e preciso escrever um script para enviar por FTP os arquivos para os ambientes de preparação e produção.

Requisitos:

  1. Só deve transferir arquivos novos ou alterados para o servidor remoto

Restrições:

  1. Nenhum acesso ao shell de qualquer tipo nos ambientes remotos
  2. Não é possível usar o rsync
  3. Apenas FTP disponível

Minha pergunta: Existe algum utilitário baseado em FTP que eu possa empregar que atenda a esses requisitos em vez de escrever o meu próprio?

    
por Ben Waine 09.05.2012 / 13:05

3 respostas

7

Contanto que você controle o cliente, você pode usar o FTPFS no cliente e, em seguida, rsync o diretório local para o diretório FTP aparentemente-local-mas-realmente-montado.

Entendo que o FTPFS agora faz parte da LUFS .

Editar : Eu adoraria ter um link para um tutorial, mas normalmente eu começo apenas com o wiki do projeto, e algo parece estar no sourceforge agora. CurlFTPFS, que parece ser baseado em cURL e FUSE, pode ser encontrado aqui , e a montagem / desmontagem parece ser tão simples quanto :

$ 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/
    
por 09.05.2012 / 13:07
2

Usamos ant para scripts e automação. A tarefa ant FTP tem um parâmetro 'depends' que transfere apenas arquivos novos ou alterados link

    
por 09.05.2012 / 15:38
1

Talvez algo nos moldes do ncftp para sincronizar um diretório com o servidor. Você poderia ir tão longe quanto colocar isso no capistrano (substituir: implantar e executar o comando ncftp depois de ter verificado a versão que você deseja implantar).

    
por 09.05.2012 / 13:18