Script para backupear carpeta de FTP



  • Hola a todos.

    Vamos a ver, estoy intentando hacer un script en Linux para hacer copias de seguridad de una carpeta del servidor FTP de mi página web.

    Llevo hecho esto:

    #!/bin/bash
    ftp aqui-el-host
    

    Entonces por ahora lo que hace es abrirme una terminal donde debo meter el usuario y luego la contraseña y ya estoy logueado y puedo ver las carpetas y etc…

    Lo que debo poner ahora es que ponga el nombre de usuario automáticamente, y que me pida que entre la contraseña con "read" o algo así he visto y que coja la carpeta y la copie a una dirección predefinida.
    Es que llevo ya un rato pensando y no sé como poner que el nombre de usuario se autoponga y todo lo demás, a ver si alguien me puede echar una mano. Seguramente tenga que usar variables para la contraseña, para que me la pida y luego la meta en el hueco correspondiente.

    Bueno, a ver qué me decís, un saludo!


  • Admin honoris causa

    backupear? xDDDD

    te pongo parte del script que usaba yo para subir unos ficheros a un ftp, con lo que la variacion no será mucha

    REM Aqui empieza la subida al ftp de BT

    echo open HOST.net>c:\bats\ini\FTPSubidaBT.ini
    echo USUARIO>>c:\bats\ini\FTPSubidaBT.ini
    echo PASSWORD>>c:\bats\ini\FTPSubidaBT.ini
    echo mkdir "DIR1/DIR2/%fecha%">>c:\bats\ini\FTPSubidaBT.ini
    echo cd "DIR1/DIR2/%fecha%">>c:\bats\ini\FTPSubidaBT.ini
    for %%f in ("%dir%*.*") do echo put "%%f">>c:\bats\ini\FTPSubidaBT.ini
    echo bye>>c:\bats\ini\FTPSubidaBT.ini

    REM Aqui termina la subida al ftp de BT

    ftp -s:c:\bats\ini\FTPSubidaBT.ini

    es para el ftp de windows, pero será primo hermano del de linux.



  • Gracias packo por la aportación, aunque la verdad es que me entero un poco de lo que haces, pero algunos detalles no.

    De momento llevo hecho esto:

    #!/bin/bash
    echo "Por favor, introduzca la password para el usuario NOMBREUSUARIO en HOST"
    read password
    ftp -v -n ftp.HOST.org
    user NOMBREUSUARIO $password
    
    

    Ahora lo único que me falta es que copie la carpeta que hay dentro de nombre XXXX y la pegue en una dirección de mi disco duro, es sencillo, pero no sé cómo, voy a investigar.

    Saludos!


  • Admin honoris causa

    es que en mi caso el nombre de los ficheros se actualizaba dinamicamente con lo que tenia que generar el ini para luego pasarselo como parametro al ftp.exe
    Para descargar por ftp creo recordar que era get RUTAFTP RUTALOCAL


  • Global Moderator

    y para varios archivos usa mget. ejemplo

    mget /porn/*.avi .

    te copia todos los .avi (videos) porno del ftp a la carpeta en la que estabas cuando ejecutaste ftp ;)



  • @Mystique:

    y para varios archivos usa mget. ejemplo

    mget /porn/*.avi .

    te copia todos los .avi (videos) porno del ftp a la carpeta en la que estabas cuando ejecutaste ftp ;)

    Tambien vale para los "no-porno"???

    por cierto…. "backupear"????... esa palabra no es del idioma de cervantes, verdad??? :D:D:D:D:D:D



  • Muchas gracias por toda la ayuda.

    Después de estar googleando y enreando gran parte de la tarde llevo hecho lo siguiente:

    #!/bin/bash
    echo "Listo para realizar el Backup desde HOST"
    echo "Por favor, introduzca la password para el usuario USER"
    read password
    lftp -u USER,$password HOST -e mirror CARPETA-A-COGER DESTINO
    echo "Backup realizada con exito ;)"
    

    Así me funciona, ahora lo que quiero hacer es que me lo meta en un archivo .tar.gz con la fecha del día que se hizo, que creo que sé como hacerlo y otra cosa que no me acuerdo :rolleyes:

    Saludos


  • Global Moderator

    alf, si no es porno la cosa se complica exponencialmente



  • @Mystique:

    alf, si no es porno la cosa se complica exponencialmente

    Me lo temia… :D:D:D:D:D...

    Pues que el script baje solo porno y ya esta... no somos quien para complicar de manera exponencial un script :D:D:D:D:D:D:D



  • Revisa esta dirección ahi te vienen muchos ejemplos par ahacer backups por ftp e insitu en tu server si usas PHP

    www.phpclasses.org



  • Joer, mira q sois complicados, eh???
    Esto te lo metes en un archivo en el servidor y le llamas backup, por ejemplo ;)

    #!/bin/bash
    #borramos los archivos de copia anteriores
    rm /home/ruta_directorio/backup/backup*.gz
    #Creamos el archivo comprimido de todo el backup
    tar -c /home/ruta_directorio_a_backupear > /home/ruta_directorio/backup/backup_$(date +%d-%m-%Y).tar
    gzip /home/ruta_directorio/backup/backup_$(date +%d-%m-%Y).tar
    

    Y luego solo tienes que hacer un script que te baje lo que hay en ese directorio ;) que es lo q ya tienes hecho ;)

    Por cierto, si lo tienes en dreamhost, tienes que ponerle como ruta_directorio "/home/username/.snapshot/nightly.0/ruta_directorio" porque sino los archivos que se esten en uso no te los comprimira ;)

    Se me olvidaba, el primer archivo lo metes en el crontab para que lo haga periodicamente ;)



  • Alf el caso de pelis no-porno no se puede contemplar para tu equipo, aunque si lo estas pregutnando por algun amigo se acepta. XDDD


Accede para responder
 

Has perdido la conexión. Reconectando a Hardlimit.