191 votos

Cómo utilizar rsync a través de FTP

Cualquier unix:

Tengo la siguiente línea de comandos que funciona bien.

rsync -avr -e ssh /home/dir user@example.com:/home/

Pero tengo que configurarlo ahora a rsync a un servidor remoto que sólo tiene un servidor de FTP. ¿Cómo hago eso?

Me miré en el rsync ayuda, pero rápidamente se perdió (no hago esto muy a menudo).

166voto

Daniel Mz Puntos 1

Rsync definitivamente no va a funcionar para usted, por los motivos que otros han mencionado.

Sin embargo, lftp y ncftp ambos tienen "espejo" de los modos que probablemente va a satisfacer sus necesidades.

Yo uso este para empujar cosas de mi directorio local a un ftp o sftp host web:

lftp -c "set ftp:list-options -a;
open ftp://user:password@your.ftp.com; 
lcd ./web;
cd /web/public_html;
mirror --reverse --delete --use-cache --verbose --allow-chown  
--allow-suid --no-umask --parallel=2 --exclude-glob .svn"

124voto

GabrieleV Puntos 1034

Como lo ha escrito esel

lftp es muy buena herramienta.

Te sugiero que para parametrizar el script, y hacer uso de la

exclude-glob

opciones, que excluye a los nombres de archivos usando la función glob (*,? ..) de su intérprete de comandos:

#!/bin/bash    
HOST="your.ftp.host.dom"
USER="username"
PASS="password"
FTPURL="ftp://$USER:$PASS@$HOST"
LCD="/path/of/your/local/dir"
RCD="/path/of/your/remote/dir"
#DELETE="--delete"
lftp -c "set ftp:list-options -a;
open '$FTPURL';
lcd $LCD;
cd $RCD;
mirror --reverse \
       $DELETE \
       --verbose \
       --exclude-glob a-dir-to-exclude/ \
       --exclude-glob a-file-to-exclude \
       --exclude-glob a-file-group-to-exclude* \
       --exclude-glob other-files-to-exclude"

Advertencia: asegúrese de que el directorio de destino existe, de lo contrario el comando cd fallará, por lo que la operación incluyendo la eliminación de los árboles de archivos tendrá lugar en el directorio equivocado (root)!

He actualizado el script para que --delete opción está desactivada por omisión, permitir que quitando el DELETE= command.

81voto

dghughes Puntos 151

No. rsync no pueden hacer eso por usted, es un protocolo de su propia y no funciona a través de FTP.

Usted puede, sin embargo, quiere probar csync. IIRC proporciona rsync-como el comportamiento a través de HTTP. Yo no puedo comentar si funciona a través de FTP, vas a tener que probarlo.

16voto

poupou Puntos 148

Hay weex...

Weex es una utilidad diseñada para automatizar la tarea de forma remota el mantenimiento de una página web o FTP archivo. Se sincronizar un conjunto de archivos locales a un servidor remoto la realización de las cargas y remoto elimina como se requiere.

5voto

Ian Kelling Puntos 1233

rsync no funciona a través de ftp. En el lado remoto necesita el demonio rsync o una concha que se puede llamar rsync. Ftp generalmente le permite llamar a un par de comandos y rsync no es uno de ellos. Hay otras herramientas que significaba para la automatización de ftp tareas como "lftp".

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: