Sincronizando arquivos via FTP

11

Preciso sincronizar arquivos no meu computador com o servidor ao qual tenho apenas acesso FTP. Portanto, não posso usar o rsync (isso precisaria de pelo menos SFTP, mas o único canal disponível para mim é o FTP simples).

Eu só preciso de sincronização unidirecional: da minha máquina para o servidor. Eu ouvi falar de um programa chamado uníssono , mas parece ser destinado à sincronização bidirecional e não tenho certeza se ele pode ser ajustado para fazer o que eu quero. Devo acrescentar também que o programa deve funcionar de maneira não interativa, para que possa ser usado dentro de um script.

A opção final seria escrever meu próprio script que compara arquivos por tempo de modificação (ou algo parecido) e copie sobre os que foram alterados. Eu já consegui montar o diretório FTP em um diretório local, então o problema se resume a apenas sincronizar dois diretórios. Mas meu instinto me diz que deve haver algo assim já existente na natureza.

Rene Saarsoo
fonte

Respostas:

14

Como não consegui wputtrabalhar, procurei uma alternativa e encontrei: ncftp .

Mais especificamente, o ncftpput parecia fazer quase o que o wput foi projetado para fazer. Mais importante para mim, não caiu como um wput. E, de fato, ele consegue fazer upload apenas dos arquivos que não foram alterados usando a opção -z :

ncftpput -z -u user -p pass ftp.mydomain.com dir/name files-to-upload...
Rene Saarsoo
fonte
funcionou perfeitamente para mim
roman m
No OSX, instale via: brew install ncftp.
kenorb
1
Para copiar árvores de diretório inteiras, use -R.
kenorb
+1 para o uso off-label de -z para significar "noclobber" / "não substitua"
barrycarter 08/12/15
Eu gostaria de encontrar isso 2 dias atrás. Desisti do ncftpget, já que a página de manual não mostrava nenhuma opção "apenas mais recente" "pular existente". Eu bati minha cabeça no lftp - do BASH ao Python. Então tentei ncftp no Google e encontrei sua solução. Procurei pelo ncftpget (página de manual) - "-z / -Z Do (não) tente retomar as transferências. O padrão é tentar retomar". Não parecia convincente. Mas, diabos, essa é a opção que eu estava procurando: baixe apenas novos arquivos usando o ncftpget. Espero que este comentário ajude alguém.
Anup Nair
4

lftpparece também apropriado aqui: /programming//a/693280/480534

Resumo:

lftp <username>@<server>
  mirror -c <source> <dest>
  exit
Robert Muil
fonte
3

Claro, e é chamado wput

user7963
fonte
Claro! Como eu não pensei nisso. Esqueci completamente esse programa. Eu acho que ele vai trabalhar, mas eu vou voltar relatório quando eu voltar para casa para experimentá-lo ...
Rene Saarsoo
Para alguns, o wput me dá "falha de segmentação" sempre que tento carregar algo.
Rene Saarsoo 02/09/09