The Community Forums

Interact with an entire community of cPanel & WHM users!
  1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Crontab backup en cpanel?

Discussion in 'Discusión en Español' started by jmguillenre, Jun 10, 2007.

  1. jmguillenre

    jmguillenre Member

    Joined:
    Jun 9, 2007
    Messages:
    6
    Likes Received:
    0
    Trophy Points:
    1
    Hola a todos, tengo un problema con un cliente y necesito saber si se puede hacer un crontab para que el cliente haga backup automáticamente desde su cpanel a medio día hacia su ftp. ¿alguna idea del comando a ejecutar en el crontab para realizar este propósito? gracias por adelantado.:)
     
  2. macareno

    macareno Member

    Joined:
    May 23, 2005
    Messages:
    5
    Likes Received:
    0
    Trophy Points:
    1
    Location:
    Monterrey Mexico
    Pues mira para hacer un backup remoto, de bajo costo y que tenga tecnologia Rsync, pues yo le recomendaria que contratara un espacio en disco con la empresa Bqbackup.com

    Una vez que contrate con ellos un espacio en disco, le daran unas instrucciones para poder hacer un backup rapido y sencillo a su nuevo espacio y mediante un crontab en tu server.

    Este tipo de backup copiara todo al inicio y posteriormente solo guardara los archivos o carpetas modificadas!

    Saludos
     
  3. jmguillenre

    jmguillenre Member

    Joined:
    Jun 9, 2007
    Messages:
    6
    Likes Received:
    0
    Trophy Points:
    1
    Gracias por la solución Macareno aunque no es lo que quiere el cliente, Nosotros hacemos copias de seguridad todas las noches y el cliente quiere hacer las suyas propias a medio día a través de un crontab en su cpanel de la BD. Necesito algún ejemplo de código para programar el crontab. gracias de todos modos.
     
  4. jmguillenre

    jmguillenre Member

    Joined:
    Jun 9, 2007
    Messages:
    6
    Likes Received:
    0
    Trophy Points:
    1
    Hacer un backup mysql con CRON en Linux

    Después de mucho buscar he localizado esta guía que parece que se adapta a lo que necesitamos y sirve para varias BDs. el Cron ejecutará un pequeño script según programación.
    Lo expongo aquí para quien le pueda ayudar:

    En este tutorial les mostraré como hacer un pequeño script que permite realizar un backup de la base de datos que tengamos en mysql.

    Estoy suponiendo que tienes instalado y configurado un servidor mysql funcionando en tu computadora o en un servidor remoto y que tienes los privilegios necesarios para accesar a la base de datos y ejecutar scripts en tu computadora o en el servidor remoto. Aclarado esto podemos seguir con el tutorial.
    Script de Backup Mysql

    Primero vamos a crear una carpeta para guardar el backup que vamos a generar, esta carpeta la puedes crear donde quieras, yo personalmente la creé en mi directorio raíz pero lo puedes crear donde quieras:


    En nuestro editor de texto favorito escribimos el script que hará el backup de la bases de datos que tengamos en nuestro servidor de MySQL:

    Guarda este script con el nombre mysqlrespaldo.sh (o el nombre que más te parezca) en donde quieras, yo tengo una carpeta llamada scripts en mi directorio home, es a gusto de cada quien.

    Vamos a analizar el script línea por línea: la primera línea #!/bin/sh simplemente le indica al bash que es un script ejecutable y donde va a buscar el bash que va a utilizar para ejecutar este script en este caso /bin/sh.

    La segunda línea es la que hace todo el trabajo, mysqldump es un comando que “vuelca” o copia todos los datos que estén dentro de la base de datos que le indiquemos en la línea de comandos, las opciones son las siguientes:

    * -u es para indicar el usuario en este caso es root pero puede ser cualquier otro usuario que tenga privilegios sobre la base de datos
    * -p es para indicarle el password aquí tienes que colocar el password del usuario que estás utilizando para conectarte en la base de datos.
    * –opt db1 aquí indicamos cual es base de datos que queremos que copie en este caso db1
    * el operador > redirecciona la salida del comando hacia un archivo llamado db1.sql en una carpeta llamada respaldosql.

    La línea que sigue hace exactamente lo mismo que la primera pero con otra base de datos llamada db2, puedes agregar tantas base de datos como quieras a este script.

    Después cambiamos al directorio de respaldo donde acabamos de crear los archivos db1.sql y db2.sql con cd /respaldosql/ y comprimimos todos los archivos en uno solo con su respectiva fecha con el comando date, esto es para tener un respaldo anterior y saber cuando lo hicimos, es útil en caso de que por alguna razón queramos un respaldo viejo.

    La última línea es opcional, lo que hace es buscar todos los archivos comprimidos que tengan más de 2 días y los elimina, esto es para evitar que se nos acumulen archivos antiguos, puedes cambiar con que frecuencia quieres borrar estos archivos puedes utilizar man find para mayor información.

    Muy bien ahora tenemos nuestro script listo lo primero es hacerlo ejecutable:

    En Ubuntu:


    En cualquier otra distribución tenemos que tener privilegios de administrador o root:

    Añadiendo el Script a CRON

    Como ya mencioné anteriormente CRON es una herramienta que posee Linux para ejecutar programas o scripts en forma repetitiva. Para modificar la tabla de cron ejecutamos el siguiente comando en nuestro shell:


    Se abrirá el crontab en nuestro editor de texto por defecto (en Ubuntu casi siempre se abre en el nano) aquí agregamos la siguiente línea y guardamos nuestro archivo:

    Guardamos nuestro archivo y ya está listo para ejecutarse diariamente, vamos a explicar un poco como funciona (recuerda colocar en /home/usuario/scripts la ruta donde guardaste tu script).

    El archivo de crontab tiene la siguiente estructura de izquierda a derecha:

    * Minutos (rango de 0-59)
    * Horas (0-23)
    * Día del mes (1-31)
    * Mes (1-12)
    * Día de la semana (0-6 siendo 0=Domingo)
    * Path completo al script o programa que queramos ejecutar

    Cualquier campo con * quiere decir que se corre a cualquier posible valor de ese campo. Así que en nuestro caso el script correrá todos los días a la 1:00 de la madrugada.


    Ahora solo queda averiguar como puedo a través del script enviar el archivo resultante al ftp elegido por el cliente que es nuestro caso, he leído que con ncftp se puede realizar este propósito aunque he verificado que no lo tengo instalado en el server ya que por consola al introducir ncftp me devuelve -bash: ncftp_ command not found y por ahora no voy a instalarlo sin saber que implicaciones puede tener en el cpanel/whm, tendré que consultar a los gurús de cpanel support.

    Bueno espero que les sirvan, como siempre cualquier duda, consulta o comentario son bienvenidos...saludos.
     
    #4 jmguillenre, Jun 11, 2007
    Last edited: Jun 11, 2007
Loading...

Share This Page