2012-07-15 34 views
5

Voglio automatizzare per caricare file dei miei siti web. Ma il server remoto non supporta ssh, quindi provo il comando lftp in basso invece di rsync.Perché lftp mirror --only-newer non trasferisce il file "solo più recente"?

lftp -c "set ftp:use-mdtm no && set ftp:timezone -9 && open -u user,password ftp.example.com && mirror -Ren local_directory remote_directory" 

Se i file locali non vengono modificati, nessun file viene sovraccaricato da questo comando. Ma, cambio un file ed eseguo il comando, tutti i file vengono caricati.

Conosco il problema MDTM di lftp/ftp. Così, ho provato "set ftp: use-mdtm no & & set ftp: timezone -9", ma tutti i file vengono caricati anche se ho cambiato solo un file.

Qualcuno sa perché il mirror lftp --only-newer non trasferisce il file "solo più recente"?

risposta

5

Nella pagina seguente

http://www.bouthors.fr/wiki/doku.php?id=en:linux:synchro_lftp

gli autori affermano:

Durante il caricamento, non è possibile impostare la data/ora sul file caricati, è per questo che -> ignorare -tempo è necessario.

quindi se si utilizza la combinazione di flag --only-newer e --ignore-time è possibile ottenere proprietà di backup decenti, in modo tale da sostituire tutti i file di dimensioni diverse. Ovviamente non aiuta se si ha realmente bisogno di fare affidamento sulla sincronizzazione temporale, ma se si tratta solo di eseguire un backup regolare dei dati, farà il lavoro.

+0

Hmm. Nel mio caso, '-Rne' funziona esattamente come dovrebbe. Forse dipende dal server FTP? – kralyk

+0

lftp -e "mirror --reverse --only-newer --ignore-time /var/www/deploys/project.com/prod/shared/web/images/uploaded_statuses_photos/BACKUP_STATUSES_PHOTOS" -u nome utente, server pw || | questo copierà tutti i file sul mio server di backup, il problema è ... Voglio impostare un cronjob ogni giorno per fare il backup solo di nuove immagini ... il problema è che, quando lo eseguo di nuovo, inizia a inviare tutti i file ancora e ancora . Qualche idea per favore ??? – EnchanterIO

+0

Ho anche provato questa combinazione senza successo: "lftp -e" "mirror -c --reverse --only-newer --ignore-time" – EnchanterIO