Ist es möglich, Dateien in einem Datumsbereich per FTP zu übertragen?

Ist es möglich, Dateien in einem Datumsbereich per FTP zu übertragen?

Ich muss eine große Anzahl von Dateien von einem FTP-Server auf einen neuen Server übertragen. Es könnten Tausende von Dateien sein, daher möchte ich die Übertragung auf Dateien beschränken, die in den letzten drei Monaten hochgeladen wurden. Ist das möglich und wenn ja, wie?

Ist es außerdem möglich, herauszufinden, wie groß der Download voraussichtlich sein wird, bevor Sie mit dem eigentlichen Download beginnen?

Danke

Antwort1

Sie könnenlftpdafür verwenden Sie den entsprechenden mirrorBefehl. Hier ist ein Ausschnitt aus der 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
[...]

Schau unbedingt ins Handbuch, da gibt es wirklich viele nützliche Optionen dazu mirror- wie zum Beispiel --allow-chown, --allow-suidoder --parallel[=N]. Lftp funktioniert auch mit anderen Zugriffsprotokollen wie sftp, fishoder http(s).

Antwort2

Sie könnten versuchen, es als Dateisystem zu mounten mitcurlftpfs.
Kopieren Sie dann mit find.
zB:

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

Ich vermute, es gibt bessere Lösungen.

verwandte Informationen