Opciones del LFTP

Unos de los gestores FTP más importantes de Linux es el LFTP, muy ligero y muy versátil y en las últimas versiones han mejorado muchísimo las opciones. He tenido que trabajar con el en un par de proyectos y aquí os dejo algunos comandos y opciones muy interesantes.

Para crear un directorio solo si este no existe tenemos la opción mkdir –p /directorio. Tened en cuenta que si en la url del directorio hay subdirectorios, estos serán creados en caso de no existir.

Para subir el contenido de un directorio entero tenemos la opción mirror, en la mayoría de artículos por internet utilizan esta opción para copias de seguridad con lo cual parecería que solo se pueda ejecutar este comando para sincronizar carpetas, lo cual no es el caso, por ejemplo si tienes las carpetas orígenes A, B, C y la de destino D, perfectamente puedes hacer esto:

mirror –R A D
mirror –R B D
mirror –R C D

Lo bueno de esto es que si volvemos a ejecutar uno de estos comandos solo se subirán los archivos nuevos o modificados, garantizando la sincronización de estos.

Una de las opciones que me parece más interesantes es la posibilidad de ejecutar comandos al terminar una subida, en versiones previas a la 4.4 estas configuraciones eran muy limitadas y para procesos en segundo plano casi nulas, en la 4.4.0 se mejoró un poco pero en la más actual, creo que la 4.4.9, hay opciones para casi todos los estados.

Por ejemplo si quisiéramos que nos cree un archivo con la fecha de fin al terminar podemos hacerlo con el siguiente comando:

set cmd:at-finished ‘echo `date` >> /ruta/archivo’

Tenemos el resto de opciones en el manual de LFTP.

Veamos todo junto, vamos a ejecutar la subida de un directorio entero, creando el directorio remoto si no existe y generando un archivo con la fecha en que termina el proceso. Todo esto en segundo plano.

lftp -c open ftp://user:passwd@host -e "set cmd:at-finished ‘echo `date` >> /ruta/archivo’;mkdir –p /remoto;mirror –R /origen /remoto" &

Comentarios