Cómo crear y descargar una copia de seguridad de un sitio web automáticamente – Alojamiento –

Para crear automáticamente una copia de seguridad de los sitios web alojados en su cuenta, puede aprovechar varias herramientas que proporcionan los sistemas Linux. Para poder configurar copias de seguridad automáticas es necesario tener:

Este artículo es para el siguiente escenario:
1. Está realizando una copia de seguridad de un único sitio web, que se encuentra en el directorio /public_html de su cuenta.
2. El sitio web utiliza una base de datos.
3. Se creará una carpeta para cada copia de seguridad. Se crearán dos archivos db.sql y files.tar.gz dentro de la carpeta.
4. El archivo de respaldo se generará en el servidor y se descargará a su máquina local usando scp.

Luego, crea un archivo llamado backup_server.sh dentro:

El archivo debe ser ejecutable, así que no olvide establecer los permisos en 0755.

Una vez hecho esto, edite el archivo backup_server.sh y pegue el siguiente código en su interior:

#!/usr/bin/env bash
NAMEDATE=`fecha +%F_%H-%M_%s`_`whoami`
mkdir ~/copia de seguridad/$NOMBREDATE -m 0755
mysqldump -u nombre_usuario_db -p”contraseña_db” nombre_bd | gzip > ~/backup/$NOMBREDATE/db.sql.gz
tar czf ~/backup/$NAMEDATE/files.tar.gz ~/public_html
chmod -R 0644 ~/backup/$NOMBREFECHA/*
salir 0
Deben ajustarse, a saber:

  • Reemplace dbusername con el nombre de usuario real de la base de datos (hemos usado nctest_production como ejemplo). Esto se puede verificar en el archivo de configuración de su sitio web o en el menú de Bases de datos MySQL.
  • Reemplace dbpassword con la contraseña real del usuario de la base de datos seleccionada. Tenga en cuenta que no hay espacio entre -p y la contraseña misma.
  • Reemplace dbname con el nombre de la base de datos.

También puede utilizar las rutas absolutas (por ejemplo, /home/nombre de usuario/…), especificando un directorio diferente del que realizar la copia de seguridad y/o uno diferente para almacenar las copias de seguridad. No olvides volver a verificar si todas las rutas son correctas.

Una vez que haya editado el archivo para que tenga los parámetros correctos, guárdelo:

Abra el menú Cron Jobs en su cuenta de cPanel y:

Con esta configuración, las copias de seguridad se crearán a las 12:30 a. m. EDT todos los lunes y jueves.
Los minutos, horas, días, meses y días laborables se pueden ajustar según sus necesidades.

No olvide cambiar la ruta del script en la línea de comando si lo ha colocado en una carpeta diferente y/o con un nombre diferente.

El script crea una carpeta con el nombre que contiene la fecha y hora de creación de la copia de seguridad; se ve así: /home/nctests/backup/2018-07-25_18-54_1532559254_nctests
La carpeta contiene dos archivos .qz en su interior: las copias de seguridad de los archivos del sitio web y la base de datos.

Para evitar el uso excesivo del espacio en disco de su cuenta, configuremos otra tarea cron que limpiará las copias de seguridad de más de una semana. Actuando de manera similar a la forma descrita anteriormente, cree el siguiente trabajo:

Este trabajo se ejecutará todos los domingos a la medianoche EDT y eliminará todas las copias de seguridad de más de 7 días. Puede ajustar esta configuración según sus necesidades. Siga los pasos a continuación para configurar el script de respaldo a través de SSH:

See also  Planes de alojamiento compartido: servicio web rápido y seguro de .

1. Conéctese a su cuenta (). Comience creando la carpeta que almacenará sus copias de seguridad. Para hacer esto, ejecute estos comandos uno por uno:

mkdir ~/copia de seguridad
toque ~/backup/backup_server.sh
2. El archivo debe ser ejecutable, así que no olvide configurar los permisos:chmod 0755 ~/backup/backup_server.sh
3. Una vez hecho esto, navegue hasta la carpeta /backup y abra el archivo /backup_server.sh para editarlo (por ejemplo, con nano):cd backup
nano backup_server.sh
Pegue el siguiente código dentro del archivo:#!/usr/bin/env bash
NAMEDATE=`fecha +%F_%H-%M_%s`_`whoami`
mkdir ~/copia de seguridad/$NOMBREDATE -m 0755
mysqldump -u nombre_usuario_db -p”contraseña_db” nombre_bd | gzip > ~/backup/$NOMBREDATE/db.sql.gz
tar czf ~/backup/$NAMEDATE/files.tar.gz ~/public_html
chmod -R 0644 ~/backup/$NOMBREFECHA/*
salir 0
La necesidad de ajuste:

  • dbusername: reemplácelo con el nombre de usuario real de la base de datos (hemos usado nctest_production como ejemplo). Se puede verificar en el archivo de configuración de su sitio web o en el menú de Bases de datos MySQL.
  • dbpassword: reemplácela con la contraseña real del usuario de la base de datos antes mencionado. Tenga en cuenta que no hay espacio entre -p y la contraseña misma.
  • dbname: reemplácelo con el nombre de la base de datos.

4. Ejecute el siguiente comando para crear un trabajo cron:(crontab -l ; echo “30 0 * * 1,4 ~/backup/backup_server.sh > /dev/null 2>&1”) | ordenar – | único – | crontab –
5. Para limpiar automáticamente las copias de seguridad más antiguas, agregue otro trabajo:(crontab -l ; echo “0 0 * * 0 cd ~/backup; find . -type d -mtime +7 -exec rm -rf {} \; >/ desarrollo/nulo 2>&1”) | ordenar – | único – | crontab –
6. Para ejecutar el script de copia de seguridad manualmente, simplemente puede ejecutar este comando a través de SSH en la carpeta donde está almacenado el archivo: sh backup_server.sh

Para configurar la descarga automática de las copias de seguridad a su PC, deberá crear una clave SSH sin una frase de contraseña para que el script local pueda acceder a su cuenta. Desafortunadamente, cPanel no le permite crear una clave sin una frase de contraseña a través del menú de acceso SSH, por lo que deberá crear la clave manualmente a través de Terminal.

2. Escriba el siguiente comando:ssh-keygen
3. Primero se le solicitará el nombre de la clave. Lo dejaremos en blanco para este ejemplo y en este caso se creará una clave id_rsa predeterminada; sin embargo, puede seleccionar un nombre personalizado para su clave si ya usa la clave id_rsa para algún otro propósito (tenga en cuenta que necesitará para anteponer a su clave una ruta a la carpeta .ssh, como se resalta en la captura de pantalla a continuación).4. Luego se le pedirá que ingrese la frase de contraseña y luego se repetirá. Simplemente presione Enter dos veces, sin ingresar nada allí, para que la clave se cree sin la frase de contraseña:

Ahora ha creado con éxito un par de claves:

/home/nctests/.ssh/id_rsa – una clave privada (identificación);

/home/nctests/.ssh/id_rsa.pub – una clave pública:

El siguiente paso es autorizar la clave pública (id_rsa.pub) para permitir el acceso a su cPanel. Puedes hacerlo desde el menú “Acceso SSH” en tu cPanel:

1. Abra el menú Acceso SSH.

2. Haga clic en el botón Administrar claves SSH.

See also  Registro de Dominio .fitness | Compre un nuevo gTLD .fitness por $5,48

3. Busque la clave recién creada en la sección Claves públicas y haga clic en Administrar junto a ella:

4. Haga clic en el botón Autorizar para autorizar la clave.

Una vez autorizada la clave pública, se puede utilizar su contraparte privada para acceder a su cuenta sin contraseña. Deberá descargar la clave privada (id_rsa) a su PC y luego eliminarla de la cuenta de hosting, por consideraciones de seguridad.

Si está ejecutando Mac o Linux en su PC local, simplemente deberá guardar la clave privada en la carpeta “.ssh” dentro de la carpeta de inicio de su cuenta local. Para los usuarios de Windows, el proceso es un poco más complicado y pueden consultar una guía detallada sobre cómo agregar una clave SSH a PuTTy en formato .

Ahora veamos cómo crear copias de seguridad en los sistemas operativos Windows, Linux y MacOS.

Requisitos:

  • debe instalarse en su máquina en la ruta predeterminada (Archivos de programa).
  • Debería convertir su privado a formato PPK (el que entiende PuTTY) y almacenarlo localmente. Esta clave no debe tener una frase de contraseña.
  • Debes conectarte a tu cuenta a través de SSH al menos una vez para que PuTTY recuerde la huella digital del servidor. De lo contrario, el script de respaldo fallará.

Elija un directorio en su computadora o computadora portátil para almacenar las copias de seguridad, cree un archivo TXT (puede usar el Bloc de notas) llamado backup_client.bat dentro del directorio. Luego, pegue el siguiente contenido en el archivo:@ECHO OFF
ESTABLECER RUTA=”%PROGRAMFILES%”\PuTTY;%RUTA%
SET PKEY=\ruta\a\privado\clave.ppk
>backup_client.temp plink.exe -i %PKEY% -t -P 21098 nombre de usuario@nombredeservidor “ls -thl ~/backup | grep ^d | head -n 1 | awk '{print $9}'”
PARA /f “delims=” %%x EN (backup_client.temp) CONFIGURAR DTNM=%%x
pscp.exe -q -scp -batch -r -i %PKEY% -P 21098 nombre de usuario@nombre de servidor:/home/nombre de usuario/backup/%DTNM% .
del /f backup_client.temp
Deberá modificar algunos parámetros para que coincidan con su entorno local:

  • Reemplace \path\to\private\key.ppk con el valor real, incluida la extensión de archivo .ppk (hemos usado C:\Users\user\private.ppk como ejemplo).
  • El nombre de usuario y el nombre del servidor deben cambiarse por los reales a lo largo del script.
  • Si PuTTY está instalado en una ruta no predeterminada, cambie %PROGRAMFILES%\PuTTY al directorio real.

Para iniciar manualmente la ejecución del script y descargar la copia de seguridad, simplemente ejecute el archivo backup_client.bat.
Para ejecutar el script automáticamente en un momento dado, usaremos la aplicación. Para abrirlo, búsquelo en el menú Inicio o ejecute el siguiente comando a través del menú Ejecutar: C:\Windows\System32\taskschd.msc
Una vez abierto, haga clic en Crear tarea básica… en el menú Acciones:

Comience nombrando la tarea y, opcionalmente, describiéndola y haga clic en Siguiente:

Luego, seleccione la opción Diaria y haga clic en Siguiente:

Establezca la fecha y hora de inicio para que se ejecute la tarea (la fecha debe ser anterior al día actual) y haga clic en Siguiente. Tenga en cuenta que su hora puede (o no) ser la misma que la hora del servidor y ajuste la configuración de hora en consecuencia.

En el siguiente menú, seleccione la opción Iniciar un programa y haga clic en Siguiente:

Especifique la ruta al script (también puede hacer clic en el botón Examinar… y elegir la ubicación). Además, copie la ruta completa antes del nombre del script (por ejemplo, D:\NC_backups\ en nuestro caso) y péguela en el cuadro Iniciar en. Una vez hecho esto, haga clic en Siguiente:

See also  .to Registro de Nombre de Dominio | Comprar .a TLD

Ahora se especifican todas las configuraciones para la tarea. Revise y, si todo parece correcto, haga clic en Finalizar:

Eso es todo. La tarea se ejecutará diariamente a la hora especificada si su máquina está encendida.

También vale la pena señalar que aparecerá una ventana de símbolo del sistema en blanco cuando se ejecute la tarea y se cerrará automáticamente cuando finalice.

NOTA: Todos los scripts incluidos en este artículo se proporcionan únicamente para su referencia y no tienen garantía alguna. Úselos a su propia discreción, ya que no podemos ser responsables de los daños.

Elija un directorio en su máquina local para almacenar las copias de seguridad, cree un archivo llamado backup_client.sh dentro y pegue el siguiente contenido en el archivo:#!/usr/bin/env bash
ssh -i ~/.ssh/id_rsa -t -p21098 nombre de usuario@nombredeservidor “ls -thl ~/backup” > backup_client.temp 2>&1
scp -r -i ~/.ssh/id_rsa -P 21098 nombre de usuario@nombredeservidor:~/backup/`grep ^d backup_client.temp | cabeza -n 1 | awk '{imprimir $9}'` .
rm -f backup_client.temp
Reemplace nombre de usuario con su nombre de usuario de cPanel y nombre de servidor con el nombre completo del servidor en el que está alojada su cuenta (hemos usado server99.web-hosting.com como ejemplo). Si su clave privada se encuentra en un lugar diferente, no olvide ajustar la ruta.

El script descargará el último archivo de copia de seguridad generado.

Una vez que se completen los detalles, guarde el archivo y asegúrese de que tenga permisos ejecutivos. Puede utilizar cualquier administrador de archivos capaz:

O puede usar la Terminal:chmod +x ~/backup/backup_client.sh
Ahora, cuando se invoca el script, enumerará el contenido de la carpeta /backup en el servidor, buscará la copia de seguridad más reciente y descargará la base de datos y los archivos comprimidos del sitio web. Tenga en cuenta que el script fallará si el directorio /backup en el servidor está vacío.

Puede automatizar la recuperación de la copia de seguridad creando un trabajo cron en su máquina local. Para hacer esto, ejecute el siguiente comando en su Terminal:

(crontab -l ; echo “30 1 * * 1,4 /ruta/a/backup/dir/backup_client.sh > /dev/null 2>&1”) | ordenar – | único – | crontab –
Reemplace /path/to/backup/dir/backup_client.sh con la ruta real al script de respaldo. Este Cron en particular se ejecutará todos los lunes y jueves a la 01:30 a. m. si su máquina local está encendida. Tenga en cuenta que su zona horaria local puede diferir de la del servidor y ajústela en consecuencia.

NOTA: Todos los scripts incluidos en este artículo se proporcionan únicamente para su referencia y no tienen garantía alguna. Úselos a su propia discreción, ya que no podemos ser responsables de los daños.

¡Eso es todo!

Loading Facebook Comments ...
Loading Disqus Comments ...