É possível transferir arquivos em um intervalo de datas via FTP

4

Eu preciso transferir um grande número de arquivos de um servidor FTP para um novo servidor. Poderia haver milhares de arquivos, então eu gostaria de limitá-lo aos arquivos que foram enviados nos últimos três meses - isso é possível e, em caso afirmativo, como?

Também é possível descobrir quão grande o download provavelmente será antes de você iniciar o download de fato?

Obrigado

    
por williamsdb 26.03.2012 / 19:47

2 respostas

3

Você pode usar lftp para isso, utilizando o comando mirror . Aqui está um recorte da manpage:

  mirror [OPTS] [source [target]]

   Mirror specified source directory to local target directory. If target
   directory  ends  with  a  slash,  the source base name is appended to 
   target directory name. Source and/or target can be URLs pointing to 
   directories.


[cut...]
        -N, --newer-than=SPEC    download only files newer than specified time
            --on-change=CMD      execute the command if anything has been changed
            --older-than=SPEC    download only files older than specified time
[...]

Definitivamente, dê uma olhada no manual, pois há realmente muitas opções úteis para mirror - como --allow-chown , --allow-suid ou --parallel[=N] , por exemplo. O Lftp também trabalha com outros protocolos de acesso, como sftp , fish ou http(s) .

    
por 27.03.2012 / 01:37
2

Você pode tentar montá-lo como um sistema de arquivos usando curlftpfs .
Em seguida, copie usando find .
por exemplo:

mkdir /tmp/mountpoint
curlftpfs ftp://example.com/ /tmp/mountpoint/
cd /tmp/mountpoint
find -mtime +90 -exec cp {} /dest/path/ \;

Eu suspeito que existem melhores soluções.

    
por 26.03.2012 / 20:11

Tags