2008-12-03 8 views
17

Estoy descargando un archivo de registro bastante a menudo desde un servidor ftp (que no estoy bajo control, por cierto), y parece bastante repetitivo descargar todo el archivo cada vez.Ftp transferir el rsync-way

Así que estoy buscando un programa (linux-ish) o módulo Perl que combine de alguna manera ftp y rsync, y solo "actualice" el archivo.

El archivo de registro está en constante crecimiento.

¿Algo así alrededor?

+0

ver [Cómo utilizar rsync en FTP] (http://serverfault.com/q/24622/15186) en [sf] – CharlesB

Respuesta

19
 
Install curlftpfs (if on Windows, use cygwin) 

# Create local mount path 
mkdir -p /mnt/myftp 

# Mount the destination ftp site using curlftpfs 
curlftpfs -o allow_other ftp://myusername:[email protected] /mnt/myftp 

# rsync inplace using append option 
# use a long timeout value as the first long phase 
# (the inplace comparison) takes a while 
rsync -rzvvv --inplace --append --progress --stats --timeout=7200 /mnt/myftp/path/to/source/file.log /path/to/local/destination/file.log 

# When you need to umount the ftp site 
sudo umount myftp 

# You can also mount from /etc/fstab by appending the following line 
# curlftpfs#myusername:[email protected] /mnt/myftp fuse allow_other,rw,user,noauto 0 0 

# References: 
# http://linux.byexamples.com/archives/344/mounting-ftp-host-to-local-directory-on-top-of-fuse/ 
# http://lists.samba.org/archive/rsync/2007-May/017762.html 
+0

Es muy ineficiente en comparación con lo que lftp en modo espejo hace – CharlesB

+0

@CharlesB puede ser ineficaz t pero se puede programar para que se ejecute automáticamente. No veo cómo automatizas lftp/mirror? – justinhartman

+2

@justinhartman ¿ha marcado http://serverfault.com/a/24833/15186? Muestra cómo hacerlo de forma automática. – CharlesB

0

Creo que está tratando de obtener funciones rsync fuera de ftp y no va a funcionar fácilmente. Recomendaría una solución rsync pura.

+2

El OP dice que no tiene control sobre el servidor, por lo que rsync no es una opción – CharlesB

4

¿No funcionaría la "reanudación de la descarga" para su caso?

pretender su traslado fue abortado última vez y reiniciar la descarga desde donde se detenga