Precisamente porque los backups contienen información sensible parece inteligente encriptar tus copias de seguridad de SQL … o cualquier backup de tu sitio ¿no crees?
Lo que vamos a ver hoy es un script de consola útil para hacer backups seguros de los archivos y la base de datos de tu blog WordPress de una manera sencilla y que no te complique. Solo tienes que generar una llave GPG una vez, introducirla en 3 configuraciones y desde ese momento ya se puede ejecutar por cualquier usuario, y desde donde quieras.
¿Que hace?
Una vez lo ejecutas, este script te pide la localización de la carpeta raiz de tu blog y también donde está tu archivo wp-config.php. También te pedirá un UID (ID de usuario) de encriptación. A continuación el script guarda esas configuraciones en un fichero llamado .sbackup para que la siguiente vez que ejecutes el script se ejecute sin tener que volver a introducir esa información, muy útil para los cronjobs o para backups a voluntad rápidos y sencillos. Otra característica interesante de este script es que automáticamente analiza tu fichero wp-config.php para extraer el nombre de la base de datos MySQL, el usuario, servidor y contraseña. Con esto no comprometes tu seguridad al tiempo que no pierdes tiempo tecleando esos datos manualmente.
¿De que se hace backup?
Este script crea un fichero tar y gzip de toda tu directorio raiz en la carpeta ~/backups/domain.com/domain.com-fecha.tgz y también crea una copia de seguridad de tu base de datos de WordPress en un formato ideal para restaurarlo a posteriori. Ambos archivos se encriptan utilizando tu llave GPG, y pueden descargarse con seguridad ya que son necesarias la contraseña y la llave para desencriptarlos.
Generando la Llave GPG
Si no tienes aún una llave configurada para tu cuenta shell ejecuta este comando recordando (o apuntando) el UID que introduces en el script.
gpg --gen-key
Desencriptando los Archivos
gpg -r UID --output FILENAME.tgz --decrypt FILENAME.tgz.asc
El Script
#!/bin/bash
# SiteBack Version 3.1, 2008-07-04
# GNU Free Documentation License 1.2
# 07-04-08 - AskApache (www.askapache.com)
# Traducido por Ayuda WordPress (ayudawordpress.com)
umask 022
### OPCIONES DE CONSOLA
set +o noclobber # allowed to clobber files
set +o noglob # globbing on
set +o xtrace # change to - to enable tracing
set +o verbose # change to - to enable verbose debugging
set -e # abort on first error
shopt -s extglob
###########################################################################--=--=--=--=--=--=--=--=--=--=--#
###
### CONFIGURACIONES
###
###########################################################################==-==-==-==-==-==-==-==-==-==-==#
DT=$(date +%x); DT=${DT///}
DTX=$(date +%x-%H%M); DTX=${DTX///}
BDIR=${HOME}/backups
RUN_FILE=${BDIR}/$$.bk.log
MY_CONFIG=".sbackup"
DOMAIN=;DB_NAME=;DB_USER=;DB_PASSWORD=;DB_HOST=;WP_CONFIG=;SQL_DEST=;ARC_DEST=;ENCRYPT_USER=
E_SUCCESS=0;E_YN=0;E_YES=251;E_NO=250;E_RETURN=65;C0=;C1=;C2=;C3=;C4=;C5=;C6=;C7=;C8=;C9=
###########################################################################--=--=--=--=--=--=--=--=--=--=--#
###
### FUNCIONES
###
###########################################################################==-==-==-==-==-==-==-==-==-==-==#
#--=--=--=--=--=--=--=--=--=--=--#
# script_title
#==-==-==-==-==-==-==-==-==-==-==#
function script_title(){
# ESTABLECE TITULO Y COLORES DE LA VENTANA
case ${TERM:-dummy} in
xterm*|vt*|ansi|rxvt|gnome*)
C0="
Inicio