Necesito transferir una gran cantidad de archivos desde un servidor FTP a un servidor nuevo. Podría haber miles de archivos, por lo que me gustaría limitarlos a los archivos que se cargaron en los últimos tres meses. ¿Es eso posible y, de ser así, cómo?
¿También es posible saber qué tan grande será la descarga antes de comenzar la descarga real?
Gracias
Respuesta1
Puedes usarlftp
para eso, utilizando su mirror
comando. Aquí hay un fragmento de la 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 eche un vistazo al manual, ya que hay muchas opciones útiles que le mirror
pueden gustar --allow-chown
, --allow-suid
o --parallel[=N]
por ejemplo. Lftp también funciona con otros protocolos de acceso, como o sftp
.fish
http(s)
Respuesta2
Podrías intentar montarlo como un sistema de archivos usandocurlftpfs
.
Luego copie usando find
.
p.ej:
mkdir /tmp/mountpoint
curlftpfs ftp://example.com/ /tmp/mountpoint/
cd /tmp/mountpoint
find -mtime +90 -exec cp {} /dest/path/ \;
Sospecho que existen mejores soluciones.