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

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

Preciso transferir um grande número de arquivos de um servidor FTP para um novo servidor. Pode 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 o tamanho provável do download antes de iniciar o download?

Obrigado

Responder1

Você pode usarlftppara isso, utilizando seu mirrorcomando. Aqui está um trecho da página de manual:

  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á muitas opções úteis para mirrorgostar --allow-chown, --allow-suidou --parallel[=N]por exemplo. Lftp também funciona com outros protocolos de acesso, como sftp, fishou http(s).

Responder2

Você poderia tentar montá-lo como um sistema de arquivos usandocurlftpfs.
Depois copie usando find.
por exemplo:

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

Suspeito que existam soluções melhores.

informação relacionada