Можно ли передавать файлы в диапазоне дат по FTP?

Можно ли передавать файлы в диапазоне дат по FTP?

Мне нужно перенести большое количество файлов с FTP-сервера на новый сервер. Там могут быть тысячи файлов, поэтому я хотел бы ограничиться файлами, которые были загружены за последние три месяца — возможно ли это и если да, то как?

Также возможно ли узнать, насколько большим будет объем загрузки, прежде чем начать ее?

Спасибо

решение1

Вы можете использоватьlftpдля этого, используя его mirrorкоманду. Вот фрагмент из man-страницы:

  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
[...]

Обязательно посмотрите руководство, так как там действительно много полезных опций mirror- например --allow-chown, , --allow-suidили --parallel[=N]. Lftp также работает с другими протоколами доступа, например sftp, , fishили http(s).

решение2

Вы можете попробовать смонтировать его как файловую систему, используяcurlftpfs.
Затем скопируйте с помощью find.
например:

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

Я подозреваю, что существуют лучшие решения.

Связанный контент