Usar un script para hacer una copia de seguridad de tu sitio web y tu base de datos en DreamObjects

Generalidades

Con un simple script de shell, puedes automatizar las copias de seguridad de sitios web y bases de datos en DreamObjects. Este script hace lo siguiente:

  • Vuelca una base de datos en el formato mm-dd-yyyy_db-name_.sql en el directorio /home/username/backup/example.com
  • Carga la base de datos en tu bucket DreamObjects
  • Comprime el directorio de tu sitio web en el formato "mm-dd-yyyy_example.com.zip" en el directorio /home/usuario/backup/example.com
  • Carga el archivo .zip del sitio web en DreamObjects
  • Elimina la base de datos y el archivo zip del sitio web en el servidor web para ahorrar espacio

Paso 1 — Configurar tu bucket de DreamObjects

  1. Ve el siguiente artículo para crear una cuenta de DreamObjects, agregar un usuario y crear un bucket.
    DHO backup script
  2. En la página de DreamObjects, ubica el usuario que contiene el bucket con el que deseas trabajar, luego haz clic en el botón Ver objetos.

    Los buckets disponibles aparecen en la siguiente ventana:

    DHO backup script
  3. Selecciona el bucket al que deseas cargar objetos.
    DHO backup script
  4. Haz clic en el enlace AGREGAR CARPETA y añade un nuevo directorio llamado backups. Esta carpeta se utilizará para cargar las copias de seguridad de tu sitio web y de tu base de datos.

Paso 2 — Crea el cron job en tu panel

En los siguientes ejemplos, username sería tu usuario Shell y example.com tu sitio web.

  1. Inicia sesión en tu servidor a través de SSH.
  2. Crea un nuevo directorio llamado backup en el directorio principal de tu usuario.
    [server]$ mkdir ~/backup
  3. En este directorio, crea un archivo llamado example.com-backup.sh. Asegúrate de cambiar example.com al sitio del que estás haciendo una copia de seguridad.
    [server]$ touch ~/backup/example.com-backup.sh
  4. En el siguiente script, debes completar las primeras seis variables que están resaltadas:
    • domains — El script usa este campo para crear un directorio bajo /home/username/backup/. Este es el directorio que almacenará tu base de datos y los archivos del sitio web, así que asegúrate de que tenga el mismo nombre que tu nombre de dominio.
    • sqldbs — El nombre de tu base de datos.
    • opath — El directorio en el que deseas realizar la copia de seguridad.
    • mysqlhost — Tu hostname de base de datos MySQL.
    • username — Tu nombre de usuario MySQL.
    • password — Tu contraseña MySQL.
    • webdir — Esta es la ruta a tu directorio web. Cambia el nombre de dominio a tu sitio.
    • bucket-name — El nombre del bucket de DreamObjects en el que haces la copia de seguridad.
    • example.com-backup.sh — Este es el nombre de tu archivo de copia de seguridad en tu directorio /home/username/backup.
  5. Agrega el siguiente código a este archivo. Asegúrate de actualizar cualquier código que esté resaltado
    #!/bin/bash

    domain=( example.com ) sqldb=( your-db-name ) opath=$HOME/backup/ mysqlhost=mysql.example.com username=db-username password=db-user-password
    webdir=$HOME/example.com today=$(date +%m-%d-%Y) for (( i = 0; i < ${#domain[@]}; i++)) do cpath=$opath${domain[$i]} if [ -d $cpath ] then filler="just some action to prevent syntax error" else echo Creating $cpath mkdir -p $cpath fi mysqldump -c -h $mysqlhost --user $username --password=$password ${sqldb[$i]} > ${cpath}/"$today"_${sqldb[$i]}.sql zip -r ${cpath}/"$today"_"$domain".zip $webdir done #use aws-cli to upload to DreamObjects aws --endpoint-url https://objects-us-east-1.dream.io s3 sync $opath s3://bucket-name/backups/ --exclude "$opath"example.com-backup.sh #delete backup from web server find $HOME/backup/* -type d -exec rm -rf {} \; 2> /dev/null

El código anterior hace una copia de seguridad de los archivos de tu base de datos y sitio web en tu bucket DreamObjects dentro de una carpeta llamada /backups.

Paso 3 — Configurar las credenciales de AWS CLI

El script de arriba usa AWS CLI para conectarse a DreamObjects. Debes configurar AWS CLI antes de ejecutar el script o no podrás conectarte. Revisa el siguiente artículo para más información:

Paso 4 — Correr el archivo

Opción 1 — Correrlo manualmente

Corre el archivo manualmente con el siguiente comando:

[server]$ sh ~/backup/example.com-backup.sh

Opción 2 — Correrlo desde un a cron job

Puedes crear también un cron job para correr esto automáticamente en momentos específicos. Esto requerirá que crees un archivo con los comandos a correr y luego crear un cron job en tu panel.

Paso 1 — Crear un archivo para correr el comando

Crea un archivo llamado algo como websitebackup.sh con el siguiente código.

Asegúrate de cambiar example.com-backup.sh por el nombre de tu archivo de respaldo.

#!/bin/bash
sh ~/backup/example.com-backup.sh

Ve el artículo ¿Cómo crear un cron job? para crear tu cron job. En el cuadro de texto, ingresa el siguiente comando (cambia el nombre de usuario a tu usuario de Shell).

/bin/bash /home/username/websitebackup.sh

Ver también

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.

¿Aún no encuentra lo que busca?