Transferência de FTP grande de um servidor para o outro

1

Saudações, estou usando o ncftpput para transferir muitos arquivos do servidor para o outro

ncftpput -f server.txt -vRdb /public_html /var/www/site.com

O que acontece é que a conexão é cortada após cerca de 100 transferências. Existem milhares de arquivos que precisam ser transferidos. O problema é depois que a conexão é cortada e eu entro novamente no comando, ele começa do começo. Substituindo todos os arquivos existentes, tornando a transferência anterior redundante. Existe uma maneira de pular arquivos existentes? Não está na página man, então estou assumindo que não. Então, alguém sugere uma solução de linha de comando alternativa?

    
por Moak 10.08.2009 / 11:47

6 respostas

3

lftp é uma ótima ferramenta para isso, é programável usando o comando mirror:

 lftp has builtin mirror which can download or update a whole
 directory  tree.  There  is  also reverse mirror (mirror -R)
 which uploads or updates a directory tree on server.  Mirror
 can also synchronize directories between two remote servers,
 using FXP if available.

$ lftp -f

script_file:

open ftp://<user>:<pass>@ftp.blah.org/~
set net:timeout 10
set net:max-retries 2
set net:reconnect-interval-base 5
set net:reconnect-interval-multiplier 1
mirror dir1 dir1
exit
    
por 10.08.2009 / 11:58
1

Você pode tentar trabalhar com a opção -DD do ncftpput. Isso excluirá o arquivo local depois que ele for transferido com sucesso. Se você não quiser excluir arquivos em seu diretório / public_html, poderá copiá-los para um diretório temporário primeiro.

    
por 10.08.2009 / 11:59
1
#!/bin/bash

FILES='cat server.txt'
for FILE in $FILES
do
  if [ ! -d "$FILE" ]; then
    echo "Uploading $FILE..."
    ncftpput -DD -u $FTPUSER -p $FTPPASS $FTPHOST /destination/ftp/dir/$FILE
  fi
done

Não se esqueça de definir o FTPUSER, $ FTPPASS, $ FTPHOST A opção -DD excluirá o arquivo após um upload bem-sucedido . O "! -D" $ FILE "" na linha 4 irá pular diretórios dentro do server.txt. Não esqueça de tornar o script executável com "chmod 755 yourscriptfile".

    
por 02.09.2014 / 14:08
0

Você já tentou essa opção?

-A Anexa aos arquivos remotos, em vez de sobrescrevê-los.

(do site ncftp )

    
por 10.08.2009 / 12:05
0

Tente wput

    
por 10.08.2009 / 12:34
0

Existe alguma razão pela qual você não pode usar o rsync em vez de ftp?

IMO rsync é a ferramenta certa para este trabalho. Ele só transferirá arquivos novos e alterados, o que significa que, se a transferência morrer e tiver que ser reiniciada, ela será retomada de onde parou, em vez de começar do início novamente.

    
por 11.08.2009 / 00:12