12 votos

Subir un directorio de forma recursiva a un servidor FTP

Estoy escribiendo un Linux shell script para copiar un directorio local a un servidor remoto (la eliminación de los archivos existentes).

Local del servidor: ftp y lftp comandos están disponibles, no ncftp o cualquiera de las herramientas gráficas.

Servidor remoto: sólo accesible a través de FTP. No rsync ni SSH ni FXP.

Estoy pensando en el listado de archivos locales y remotos para generar un lftp secuencia de comandos y, a continuación, ejecútelo. Hay una manera mejor?

Nota: la Carga de sólo los archivos modificados sería un plus, pero no es necesario

28voto

Symmetric Puntos 158

lftp debe ser capaz de hacer esto en un solo paso, con, en particular, lftp mirror:

EDIT: la lftp sintaxis del comando es confuso, original invocación que he publicado no funciona. Pruebe algo como esto:

lftp -e "espejo -R {local dir} {remoto dir}" -u {nombre de usuario},{contraseña} {host}

nota de los comentarios en torno a los argumentos de la -e del interruptor.

2voto

Nicolas Raoul Puntos 599

Basado en Phil idea de utilizar lftp del modo espejo, este comando hace el truco:

lftp -c 'open -e "mirror /tmp/thedir ftp://nico:mypass@remotehost/~/destination/" ftp://nico:mypass@localhost'

Un inconveniente es que requiere el servidor local para tener un servidor FTP corriendo.

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: