Tutorial: Realizar copias de respaldo automáticas en cPanel

  • Autor Autor Kevin Heurtebise
  • Fecha de inicio Fecha de inicio
K

Kevin Heurtebise

Zeta
Bueno, ayer estuve buscando una forma de hacer copias de respaldo automáticas con el plazo de tiempo que yo elija porque no hay nada mejor que saber que, si tu página tuviera un problema, siempre podrás utilizar un backup reciente. Sí, puedes hacerla manualmente y, además, la empresa de alojamiento también suele crear copias periódicas, pero hacerla manualmente es un tanto engorroso, porque, si quieres hacerla cada espacio pequeño de tiempo para que tus pérdidas sean menores, será molesto estar haciéndola cada dos por tres. Muchas empresas de alojamiento las realizan, también, pero muchas la crean cada 15 días, otras diariamente... pero esto tiene sus inconvenientes: cada 15 días, si tienes que utilizar un backup, perderás el progreso en tu blog durante medio mes y, en cambio, si la copia de respado fuera diaria, podría pasar que si se te jode la página, cuando quieras cargar la backup te dirán "Hola Kevin, la copia de hace dos días ya se habrá sobrescrito por la de ayer. Saludos" y no te queda otra cosa que fastidiarte y cargar tu copia de respaldo de hace un tiempo ya, con la correspondiente pérdida de información.

Estuve buscando en ForoBeta y, como vi que no había nada parecido y estoy con ganas de aportar algo interesante que ayude algunas personas, me apeteció compartirlo aquí. Ya le dediqué un artículo en mi blog para mis lectores y ahora lo compartiré aquí para todos los forobetanos 🙂

Pues bien, todo se basa en un script que deberemos incluir en el directorio Home de nuestro ftp, un lugar seguro, pues este script incluye contraseñas (Importante no incluirlo en /www/ ni en /public_html/).

Insertar CODE, HTML o PHP:
<?php

// Script PHP con el que poder realizar backups periódicos en nuestro server.
// Este script contiene contraseñas, y lo mejor es que guardes el fichero en un lugar seguro. ¡NO LO SUBAS A /www/ o /public_html/!.

// ********* Rellena los siguientes campos *********

// Requeridos para el acceso a cPanel
$cpuser = "NOMBRE DE USUARIO";
$cppass = "CONTRASEÑA";
$domain = "TUDOMINIO.COM";
$skin = "x3"; // Plantilla que usas actualmente, sino coincide no se realizará la copia.
// Notification information
$notifyemail = "TUEMAIL@EJEMPLO.com"; // Esta será la dirección e-mail donde se remitirá el informe de resultados.
// Por defecto, activamos SSL sino disponemos de SSL, se realiza de forma estandar HTTP.
$secure = 1; 

// Si quieres una página de resultados y que aparezca en el fichero LOG de Cron, debes indicar un 1 en la siguiente variable.
$debug = 0;

if ($secure) {
   $url = "ssl://".$domain; //Comprobamos SSL
      $port = 2083;
      } else { // sino tenemos certificado, de forma estandar
         $url = $domain;
       $port = 2082;
       }

       $socket = fsockopen($url,$port);
       if (!$socket) { echo "Imposible realizar la conexión.\n"; exit; }

       $authstr = $cpuser.":".$cppass; //pasamos las variables de usuario y contraseña
       $pass = base64_encode($authstr);

       $params = "dest=homedir&email=$notifyemail&server=&user=&pass=&port=&rdir="; //especificamos el destino

       fputs($socket,"POST /frontend/".$skin."/backup/dofullbackup.html?".$params." HTTP/1.0\r\n");
       fputs($socket,"Host: $domain\r\n");
       fputs($socket,"Authorization: Basic $pass\r\n");
       fputs($socket,"Connection: Close\r\n");
       fputs($socket,"\r\n");

       while (!feof($socket)) {
         $response = fgets($socket,4096);
           if ($debug) echo $response;
      }

      fclose($socket);

?>

Una vez hayas completado toda la información del script, debes guardarlo en .php, por ejemplo, copiasbackup.php y, como digo, subirlo al Home.

Ahora, vamos al cPanel y entramos en CronJobs, en la sección "Advanced" y creamos la rutina con el periodo de tiempo que elijamos. Después de elegir el periodo de tiempo, en el espacio de texto que aparece abajo, incluye esto.

Insertar CODE, HTML o PHP:
 /usr/local/bin/php5 /home/tucuentacPanel/copiasbackup.php

Te aconsejo que, primero, elijas un periodo de 5 minutos para comprobar que todo va correcto, luego ya puedes elegir normalmente el tiempo que quieres.

Espero que os sirva.

Saludos.


Fuente: Hacer copia de seguridad cPanel automáticas | PCDiario
 
excelente aporte 😉
 
Copado! el backup, que backupea? DB y wp-content?, solo DB? Me interesa.

Saludos!
 
Interesante aporte, gracias 😀
 
Tengo problemas con la ultima parte. creo que php esta instalado en otro directorio de mi server.

cuando pongo a ejecutar la tarea en cron recibo este mail:

/bin/sh: /usr/local/bin/php5: No such file or directory

Como se que ruta tengo que poner?
 
Tengo problemas con la ultima parte. creo que php esta instalado en otro directorio de mi server.

cuando pongo a ejecutar la tarea en cron recibo este mail:

/bin/sh: /usr/local/bin/php5: No such file or directory

Como se que ruta tengo que poner?

¿Has colocado bien el script en el root?
 
Yo lo tengo con permisos 0644, aunque yo no toqué nada de permisos...
Al final anduvo con este path:

Insertar CODE, HTML o PHP:
/usr/bin/php5

Ahora me tira un error cuando quiere conectarse por ssl. en 5 minutos confirmo si anduvo.

Al final anduvo con este path:

Insertar CODE, HTML o PHP:
/usr/bin/php5

Ahora me tira un error cuando quiere conectarse por ssl. en 5 minutos confirmo si anduvo.
Otro problema. pero ahora es de mi server. parece que no tiene activados los transportes http. mañana me comunico con el soporte y veo si pueden arreglarlo.

Saludos!
 
Hmmm..., pues ya mañana me cuentas qué tal :wink1:
 
Hmmm..., pues ya mañana me cuentas qué tal :wink1:
es el hosting al final. no me habilitan eso y ahí falla. igual lo probé en otro host (donkiehost) y anduvo perfecto!

ahora voy a ver si se puede hacer que se suba a megaupload automáticamente. si logro algo aviso
 
Buen aporte! :wink1:
 
Hola Kevineitor10!

Una duda:

Supongamos que lo programo para que me respalde cada 24 horas.

Eso daría como resultado 30 respaldos al mes. Lo cual implica que en las cuentas de hosting con límite de espacio, este se vaya reduciendo...

Según entiendo el archivo del respaldo se genera con la fecha y la hora por lo tanto, se crean archivos únicos.

Alguna idea para que tan solo se creen 7 archivos únicamente (1 por cada día de la semana)?

Gracias por el aporte.
 
exelente 🙂
 
Hola Kevineitor10!

Una duda:

Supongamos que lo programo para que me respalde cada 24 horas.

Eso daría como resultado 30 respaldos al mes. Lo cual implica que en las cuentas de hosting con límite de espacio, este se vaya reduciendo...

Según entiendo el archivo del respaldo se genera con la fecha y la hora por lo tanto, se crean archivos únicos.

Alguna idea para que tan solo se creen 7 archivos únicamente (1 por cada día de la semana)?

Gracias por el aporte.

Cada respaldo es independiente uno de otro. No se sobreescriben.
Yo, cuando me acuerdo, entro a mi host y borro las que no me hacen falta y vuelvo a recuperar todo mi espacio.

Puedes cambiar el tiempo a tu gusto entrando en el CronJob de tu cPanel.
 
Cada respaldo es independiente uno de otro. No se sobreescriben.
Yo, cuando me acuerdo, entro a mi host y borro las que no me hacen falta y vuelvo a recuperar todo mi espacio.

Puedes cambiar el tiempo a tu gusto entrando en el CronJob de tu cPanel.

Tambien se podria hacer otro script que cuando llegue a tal capacidad ocupada (90% por ejemplo) borre los backups viejos. Ni idea como se hace. pero no debe ser muy dificil para alguien que sabe programacion.

Saludos!
 
Tambien se podria hacer otro script que cuando llegue a tal capacidad ocupada (90% por ejemplo) borre los backups viejos. Ni idea como se hace. pero no debe ser muy dificil para alguien que sabe programacion.

Saludos!

Tambien me gustariaque hubiera lo mismo
 
Atrás
Arriba