是否可以通过FTP传输某个日期范围内的文件

是否可以通过FTP传输某个日期范围内的文件

我需要将大量文件从 FTP 服务器传输到新服务器。可能有数千个文件,所以我想将其限制为过去三个月内上传的文件 - 这可能吗?如果可能的话如何?

另外,在开始实际下载之前是否可以了解下载的大小?

谢谢

答案1

您可以使用lftp为此,利用其mirror命令。这是联机帮助页的一个片段:

  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 还可以与其他访问协议一起使用,例如sftpfishhttp(s)

答案2

您可以尝试使用以下命令将其安装为文件系统curlftpfs
然后使用复制find
例如:

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

我怀疑存在更好的解决方案。

相关内容