OVH Community, your new community space.

[Mini-Howto] FTP Backup como punto de montaje en Linux


luis_sanz
26/12/2009, 00:47
Cita Publicado inicialmente por Power
Hola,



Yo lo probé hace tiempo.
Cuando iba todo bien, perfecto.
Pero algún día que falló el servidor de FTPBackup, el curlftps se quedó pillado originando una carga de máquina bestial.

Saludos.
si, te lei mas atras.

por eso esto intentando hacer un script para que me diga los kbs de subida que hace al ftp, y si es inferior a lo acostumbrado dejaria la actualizacion para otro dia, tambien se podria poner un cron que si a los 15 minutos no a terminado de subir que pare el proceso.

voy a ver q me invento, pero solo lo usare como una copia mas por seguridad, ya q no sera la unica hare en local y otra q bajare cada semana o mes.

XD

Power
24/12/2009, 09:52
Hola,

Cita Publicado inicialmente por luis_sanz
por si sirve de algo yo lo instale un poco mas facil
yum install curlftpfs
luego lo monte como aqui se explica y todo perfecto
Yo lo probé hace tiempo.
Cuando iba todo bien, perfecto.
Pero algún día que falló el servidor de FTPBackup, el curlftps se quedó pillado originando una carga de máquina bestial.

Saludos.

luis_sanz
23/12/2009, 20:32
por si sirve de algo yo lo instale un poco mas facil

yum install curlftpfs

luego lo monte como aqui se explica y todo perfecto

gracias, imaestro

acnet
19/12/2009, 13:32
Hola chicos, yo no he tenido problema alguno para instalar ni montar el curlftpfs, pero al copiar datos cuando llego a los 8GBs el montaje peta y recibo varios errores:

cp: cannot stat `/mnt/ftp/vms/server/semanal43.bin': Transport endpoint is not connected

He estado googleando y parece q esto puede ser generado por la versión de las libcurl, pero no se como actualizarlas. Trabajo con etch y tengo las librerías del sistema por defecto (7.15.5-1etch3).

Alguna idea?

Gracias !

macklus
24/07/2009, 09:06
Aunque este hilo es un poco viejo, aprovecharé para dar mis dos céntimos.

Una de las ventajas de OVH es que nos sobra el disco por todos los lados. A modo de ejemplo, yo tengo unos 30 GB de backup diario, y 1 TB de backup disponible de disco.

Siendo así, el montar el FTP remoto como volumen me parece inadecuado, ya que podemos utilizar el disco duro local para tener una copia adicional de todos nuestros datos.

El esquema que yo uso, para un servidor con proxmox que virtualiza una única imagen con cpanel, es:
* Cada hora, desde el servidor host, hago una imagen de la vm, sin parar ningún servicio. Ésta imagen la guardo en la partición de backups, identificando la vm, el día y la hora, y después la copio al FTP de OVH.
* Diariamente, al terminar la copia de seguridad de Cpanel, desde el host paso esa copia a la partición de backups, y después la subo al FTP de OVH.
* Cada hora, desde el host hago una copia de todas las bases de datos del Cpanel, y las voy guardando en local. Al terminar el día, hago un tar y lo subo al FTP de OVH.

Al tener tanto espacio en el FTP de OVH, me puedo permitir el lujo de guardar las copias de TODO ( cpanel, vm, mysql ) de la última semana, que dependiendo del espacio usado por mis clientes, puede ser incluso de los últimos 15 días.

En cambio, con los sistemas que aquí planteáis, tenéis mucho disco duro libre, pero las copias de vuestros datos ( la base de vuestro negocio ) solo están en un sitio.

Si alguien quiere ampliar el tema, o ve algún fallo en este modelo, espero comentarios.

Un saludo.

kerman
12/06/2009, 16:41
buenas, no consigo que funcione en el arranque lo de fstab, alguien me puede detallar un poco como va exactamente? gracias.

markus
12/02/2009, 12:26
Sip, también tenemos copias en local (en nuestra ofi), por si las flais :-D

Power
12/02/2009, 12:22
Os recomiendo hacer, de vez en cuando, un restore para comprobar que está todo bien guardado.

A mí se me degradaron algunos backups que tenía en FTPbackup de OVH.
Creo que rsync tiene bugs con ficheros muy grandes.

Con rdiff-backup no tengo esos problemas.
Pero rdiff-backup no se puede utilizar con FTP.

Saludos

markus
12/02/2009, 12:05
Otra cosa que se puede hacer es partir el backup en varios pasos, un grupo de directorios en cada uno, y entre paso y paso realizar alguna comprobación sobre cualquier dato que pueda indicar que va más lento de lo normal, etc.

En nuestro caso aquí, no ha sido necesario porque son videos, se procesan pocos cada día y se copian como un tiro, por lo menos de momento.

Lo malo de rsync cuando se cuelga es que a veces te deja el PID del proceso a 0, y no hay manera de darle un kill.

Power
12/02/2009, 10:33
Hola markus,

A mí ese sistema me funcionaba relativamente bien (salvo el tema de la saturación de tráfico de los servidores de FTPbackup de OVH).

El problema gordo llegó cuando hubo averías en los servidores de FTPbackup.
Si el backup de rdiff no acababa, el CurlFTPs se quedaba consumiendo demasiados recursos de máquina.

Tal vez, la solución habría estado en poner algún cronjob que si a determinada hora no ha acabado el backup de rdiff, mate el CurlFTPs.

Saludos

markus
12/02/2009, 04:06
Hola,

Muchas gracias por la idea. A nosotros nos va genial.

Aquí tenemos un servidor dedicado que usamos como servidor de videos, donde el nivel de actualización de ficheros es muy bajo, pero en cambio, el volumen en GB es bastante grande (como para hacer backups no incrementales). Con este método para montar el FTP de backup y un simple rsync de madrugada nos va de perlas. :-D

Con respecto de los problemas de mantener el mount que alguien comentaba más arriba, creo que con desmontar después del backup ya no hay que preocuparse, lo que se puede automatizar la mar de bien.

Seguramente se puede hacer de muchas maneras, pero por si le sirve a alguien, aquí os dejo el script que estamos usando. Ojo con las opciones del rsync y demás, que seguro conviene revisar. ;-)
Código:
#!/bin/sh
# ftp-backup.sh - Backup FTP for video server at OVH.
#
# Create local mount point:
#   mkdir /mnt/ftpbackup
#   touch /mnt/ftpbackup/local
#   chmod 400 /mnt/ftpbackup/local
#
# Create remote file to easy checking mount operation.
#   curlftpfs ftp://ftpbackXX.ovh.net /mnt/ftpbackup
#   touch /mnt/ftpbackup/remote
#
# Add the following to root crontab:
#   0 5 * * * /data/bin/ftp-backup.sh
#

# Script options.
FTP_SERVER="ftpbackXX.ovh.net"
FTP_USER="nsXXXXXXXX.ovh.net"
FTP_PASS="********"
FTP_MOUNT="/mnt/ftpbackup"
SOURCE_ROOT="/my-source-root"
SOURCE_DIR="directory"
RSYNC_OPTIONS="-rv --size-only --delete --stats --progress"

# Commands used within this script.
WHICH="/usr/bin/which"
CURLFTPFS=`${WHICH} curlftpfs`
RSYNC=`${WHICH} rsync`
FUSERMOUNT=`${WHICH} fusermount`

# Check local mount point.
if [ ! -f ${FTP_MOUNT}/local ]; then
  echo "ERROR: File not found - ${FTP_MOUNT}/local"
  exit 1
fi

# Mount remote FTP filesystem.
echo ${CURLFTPFS} -o nonempty ftp://${FTP_USER}:xxxxxx@${FTP_SERVER} ${FTP_MOUNT}
${CURLFTPFS} -o nonempty ftp://${FTP_USER}:${FTP_PASS}@${FTP_SERVER} ${FTP_MOUNT}

# Check remote mount point.
if [ ! -f ${FTP_MOUNT}/remote ]; then
  echo "ERROR: File not found - ${FTP_MOUNT}/remote"
  exit 1
fi

# Perform the rdiff backup.
echo ${RSYNC} ${RSYNC_OPTIONS} ${SOURCE_ROOT}/${SOURCE_DIR}/ ${FTP_MOUNT}/${SOURCE_DIR}/
${RSYNC} ${RSYNC_OPTIONS} ${SOURCE_ROOT}/${SOURCE_DIR}/ ${FTP_MOUNT}/${SOURCE_DIR}/
echo

# Umount remote FTP filesystem.
echo ${FUSERMOUNT} -u ${FTP_MOUNT}
${FUSERMOUNT} -u ${FTP_MOUNT}

echo "Done!"
exit 0
Saludos

Power
07/02/2009, 12:52
Hola rsantiag,

Yo también usé durante una temporada Duplicity.
Pero Duplicity me dió errores en alguna ocasión al hacer restores.
Parece que aún está en una versión demasiado beta y tiene bugs.

Ahora utilizo rdiff-backup y me va de maravilla.
Rdiff-backup está muy bien desarrollada y parece que es muy estable.

Te pongo varios hilos muy interesantes donde he participado sobre temas de backup:

http://foros.ovh.es/showthread.php?t=2774
http://foros.ovh.es/showthread.php?t=3267
http://foros.ovh.es/showthread.php?t=3490
http://foros.ovh.es/showthread.php?t=3527

Saludos

rsantiag
07/02/2009, 11:55
Gracias Power ... creo que queda descartado ...

Dándole vueltas y buscando como darle uso a ese espacio FTP, me he topado con Duplicity/ftplicity ... que no tiene mala pinta ... Alguien lo ha usado ?

Gracias de nuevo por la respuesta
Un saludo

Power
06/02/2009, 21:55
Cita Publicado inicialmente por rsantiag
Habéis llegado a poder "copiar" o "crear" algo en el punto de montaje?

Yo, obviamente por la pregunta no puedo, y he leído por ahí que se trata de una incompatibilidad entre CurlFTPFS y pure-ftpd, que resulta que curiosamente es el servidor que usa al menos el ftp que tengo activado ..
Yo lo estuve usando un tiempo.

Pero al final lo abandoné porque el servicio de backup FTP gratuito de OVH había días (mejor dicho, noches) que estaba supersaturado.

Y cuando no se podía conectar, parece que CurlFTPFS se chupaba todos los recursos de la máquina dejándola casi parada.

Por otro lado, en alguna ocasión comprobé que algunos ficheros que había "backupeado" estaban degradados y no se podía hacer restore con ellos.

Al final renuncié a utilizarlo, en favor de un servidor Kemsirve L de 19,99 €/mes con rdiff-backup.

Saludos

rsantiag
06/02/2009, 20:37
Habéis llegado a poder "copiar" o "crear" algo en el punto de montaje?

Yo, obviamente por la pregunta no puedo, y he leído por ahí que se trata de una incompatibilidad entre CurlFTPFS y pure-ftpd, que resulta que curiosamente es el servidor que usa al menos el ftp que tengo activado ...

Algún enlace al respecto ..

http://groups.google.com/group/linux...ca58e2011a36f5

Saludos

Power
06/07/2008, 13:36
Se me olvidaba.
Una pregunta de pardillo total:

Una vez modificado /etc/fstab ¿cómo se puede hacer para que se tengan en cuenta las modificaciones sin necesidad de reiniciar la máquina?

Me contesto: Basta mount -a para que se monte todo lo especificado en /etc/fstab. (Excepto los que incluyen la opción noauto)

Power
06/07/2008, 13:29
Un truqui que he leído.
Para no tener que poner la contraseña de FTP, se puede poner en el directorio home del usuario (en este caso /root) un fichero llamado .netrc con el siguiente contenido:

machine ftpbackx.ovh.net
login ksxxxxxx.kimsufi.com
password xxxxxxxx

(Sustituir en las 3 líneas las "x" por sus valores).

Darle permisos 600 al fichero .netrc
Y ahora se puede hacer:

curlftpfs ftp://ksxxxxxx.kimsufi.com@ftpbackx.ovh. net /ftpremoto

Y ya se tiene montado el FTP remoto en el directorio /ftpremoto

Otra cosa:
He probado poner en /etc/fstab la línea de curlftpfs#ksxxxxxx... pero no funciona.
¿Alguna idea?

Saludos

Power
06/07/2008, 11:48
¡¡¡ Alucinante !!!

Soy novato en esto de Linux y de la Administración de Sistemas, pero con tus indicaciones he sido capaz de hacerlo.

Y es sencillamente increíble.
Manejo desde el servidor el espacio de FTP como si fuesen ficheros locales.

En el servidor de OVH tengo instalado Centos 5.2 de 32 bits + cPanel.
Sólo he necesitado añadir un repositorio (lo leí en www.ecualug.org/?q=2006/03/30/comos/como_usar_el_repositorio_de_dag_en_nuestro_centos ).

Para ello, me he copiado en el servidor el fichero:
http://dag.wieers.com/rpm/packages/r...l5.rf.i386.rpm
Y en el directorio donde lo he dejado, he hecho:
rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm

Después he instalado, mediante:
yum install fuse-curlftpfs.i386

He hecho en el servidor un directorio llamado ftpremoto:
mkdir /ftpremoto

Después he dado:
curlftpfs ftp://ksxxxxxx.kimsufi.com:contraseñadeftp@ftpbackx.ovh. net /ftpremoto
(Cambiando las "x" por sus valores y poniendo la "contraseñadeftp").

Y sólo dos palabras: IM - PRESIONANTE
Veo los ficheros del servidor remoto de FTP dentro del directorio /ftpremoto

Sólo me queda saber cómo poner en /etc/fstab para que se monte automáticamente:
Código:
curlftpfs#ksxxxxxx.kimsufi.com:contraseñadeftp@ftpbackx.ovh.net  /ftpremoto fuse user,disable_eprt,noauto
¿Se escribe así directamente como una línea nueva de fstab?

Muchísimas gracias lmaestro.
Realmente eres un gran maestro.

Saludos

lmaestro
06/07/2008, 05:30
Muchos de vosotros estareis interesados en usar el espacio de backup que pone a nuestra disposicion OVH, pero no teneis muy claro como realizar un script que automatice la tarea, o simplemente no considerais del todo funcional ese FTP (solo accesible por medio del servidor).

Este Howto tiene como meta sacarle el maximo partido al espacio FTP usando CURLFTPFS (basado en FUSE y libcurl) en un entorno Centos 4.x/5.X para usar el FTP de Backup como un punto de montaje tradicional en Linux.

Ventajas de CurlFTPFS:

- Soporte SSLV3/TLSV1
- Reconexion automatica en caso de Timeout del servidor FTP
- Buen rendimiento
- Transforma enlaces simbolicos absolutos

Que es CurlFTPFS:

Es un sistema de archivos basado en las librerias fuse y libcurl para poder realizar el montaje de host ftp en puntos de montaje locales.

Prerequisitos:

Hay que disponer de soporte en Kernel para sistemas de archivos en espacio de usuario.

Habilitarlo en el apartado:
File systems->Filesystem in Userspace support

Instalacion:

* Paso previo: Instalacion de repositorio RPMforge para YUM

Desde la shell lanzamos el siguiente comando como root:

rpm -ivh http://packages.sw.be/rpmforge-relea...l5.rf.i386.rpm

Si tenemos un sistema operativo Centos 4.x tendriamos que usar:

rpm -ivh http://packages.sw.be/rpmforge-relea...l4.rf.i386.rpm

Nota: Para sistemas X86_64 debemos reemplazar i386 por x86_64.
A dia de hoy no estoy seguro si hay paquetes disponibles para esta version.

Nota2: Para instalar paquetes es necesario ser root, podemos usar su root o sudo -u root comando si somos usuarios.

Una vez instalado este repositorio que contiene los paquetes necesarios, hay que proceder a instalar los paquetes necesarios:

Lanzamos nuevamente como root el siguiente comando; yum install fuse-curlftpfs.i386 fuse.i386 -y (esta orden asume por defecto que se quiere instalar el paquete)

Montaje del FTP:

Ya estamos listos para hacer el montaje, por lo cual lanzamos el comando:

curlftpfs ftp://nsxxxxxx.ovh.net:xxxx@ftpbackx.ovh.net /directorio

Desmontar:

fusermount -u /directoriodondeeste montado

Fstab (arranque automatico):

curlftpfs#nsxxxxx:contraseña@ftpbackx.ovh.net /directoriolocal fuse user,disable_eprt,noauto

Espero que os sirva de ayuda, y por favor, si me he equivocado en algo, no dudeis en comentarlo.

Saludos