Cpanel

Cómo hacer copias de seguridad cPanel automáticas

VeraSoul
VeraSoul Tutoriales
6 Min.
75 / 100

Cómo hacer copias de seguridad cPanel automáticas…

En alguna ocasión, es probable que el servidor pueda estar saturado o que alguna mala configuración no permita llevar a cabo la copia de seguridad que la mayoría de todos estamos acostumbrados a realizar desde nuestra cuenta cPanel.

Es cierto, que cualquier proveedor de hosting realice copias de seguridad cada cierto tiempo, con el propósito de asegurar en alguna medida, la información que tengamos hospedada con ellos, pero se podría dar el caso, que al no ser un servicio incluido y contratado, nuestro proveedor de hosting no se haga responsable de dichas copias y éstas suelen efectuarse cada 15 días aproximadamente, con el propósito de no saturar los servidores.

Copias de Seguridad…

Las copias de seguridad de lo que tengamos alojados con nuestro proveedor de hosting, son muy importantes, especialmente a la hora de tener que mudarnos a otro proveedor. Los pasos para realizar una copia MANUAL desde nuestra cuenta de cPanel son bastante sencillos (si ya estás habituado a realizarlas de esta forma, puedes saltarte los siguientes pasos:

  • Acceder a nuestra cuenta cPanel. (http://www.tudominio.com:2082/) e introducir los datos solicitados. (Usuario y Contraseña). Si tu proveedor no emplea SSL para acceder al panel de tu hosting, deberás cambiar tu contraseña asiduamente.
  • Accedemos al panel de Archivos y hacemos clic en Respaldos.
  • Tras haber hecho clic en “Respaldos” obtendremos la siguiente imagen, donde debemos hacer clic en “Generar Respaldo”, especificando el directorio donde queremos que se guarde la copia y el correo electrónico donde deseamos obtener el informe final de la misma.

Una vez hayamos hecho clic en “Generar Respaldo” solo nos queda esperar el aviso de que todo se haya efectuado adecuadamente en el e-mail que hayamos proporcionado. Evidentemente y en ocasiones, aunque hayamos recibido el e-mail, es posible que el respaldo no se haya generado, por lo que tendremos que volver a empezar desde el principio y esto es lo que vamos a evitarnos, si realizamos copias automáticas. ¿Pero, cómo se generan de forma automática las copias?.

Realizar copia de seguridad mediante Script…

La respuesta es sencilla, vasta incluir un script que proporcionaré más adelante y llevar a cabo una tarea Cron, especificando cada cuanto tiempo queremos que se realicen las copias.

<?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);

?>

Guarda el contenido del script anterior en un fichero dentro una carpeta segura, /home/ es el lugar idóneo. Puedes asignarle al fichero un nombre que te sea familiar, por ejemplo: backup.php; fullbackup.php; copiacompleta_cpanel.php, etc..

Las tareas de cron nos permiten automatizar algunos comandos o scripts en nuestro sitio. Puedes especificar que un comando o script se ejecute a una hora precisa cada día, semana, etc. Por ejemplo, podrías configurar una tarea de cron para eliminar archivos temporales cada semana a fin de liberar espacio sobre el disco. Pero para nuestro caso y tras haber subido el fichero subirlo al servidor, el comando para el Cron es el siguiente:

30 2 * * 1 /usr/local/bin/php /home/tu-cuenta-cPanel/fullbackup.php

Con esta línea, le decimos al servidor que cada domingo a las 3:30am se ejecute una copia completa de los datos que contenta nuestra cuenta cPanel.

La idea de hacer esto es de Justin Cook, el código lo he modificado para que en lugar de que las copias se realicen a un servidor remoto, se hagan en el nuestro propio.

Compartir
6 Comentarios