Estou escrevendo um script de shell do Linux para copiar um diretório local para um servidor remoto (removendo todos os arquivos existentes).
Servidor local: ftp
e lftp
comandos estão disponíveis, nenhuma ncftp
ou nenhuma ferramenta gráfica.
Servidor remoto: acessível apenas via FTP. Não rsync, nem SSH, nem FXP.
Estou pensando em listar arquivos locais e remotos para gerar um script lftp e depois executá-lo. Existe uma maneira melhor?
Nota: Carregar apenas arquivos modificados seria uma vantagem, mas não é obrigatório.
wput
(um ftp-uploader semelhante ao wget):wput dir/ ftp://user:pass@host/dir
Respostas:
O lftp deve ser capaz de fazer isso em uma única etapa, em particular com
lftp mirror
:EDIT: a sintaxe do comando lftp é confusa, a invocação original que publiquei não funciona. Tente assim:
observe as aspas ao redor dos argumentos para o
-e
comutador.fonte
Baseado na idéia de Phil de usar o modo espelho do lftp, este comando faz o truque:
Uma desvantagem é que exige que o servidor local tenha um servidor FTP em execução.
fonte
Isso funcionou para mim, muitas outras tentativas falharam. Uma vez no lftp, mais informações estão disponíveis em:
fonte
mirror -R
aqui.Finalmente consegui a resposta !!! Criar script de shell ftpmirror.sh
Se o pacote lftp não estiver instalado, instale-o usando o yum.
fonte