Cron para realizar backups remotos en GoDaddy para Linux

cron-para-realizar-backups-remotos-en-godaddy-en-linux

Con la finalidad de asegurarnos de mantener respaldos de los espacios de las cuentas del cPanel en Servidores externos al menor costo posible y en forma segura, se recomienda adquirir varias cuentas Godaddy para el servicio “Almacenamiento En Línea de Go Daddy DeLuxe“ con una capacidad de 100 GB c/u.

La idea es que los respaldos se realicen en forma automática los días indicados en la columna Día del Cron (0=Domingo).

El cron ejecuta el script respaldos.sh ubicado en cd /backup/cpbackup/weekly/

El script de respaldos.sh es:

#!/bin/sh
# Respalda los archivos de backup en la cuenta de GoDaddy
# Verifica si es el dia de la semana en que se debe ejecutar, de lo contrario sale del script
if (("`date +%w`" != "0")); then exit
else
date +'%a %e %b %Y %H:%M:%S %Z'
# Se ubica en la carpeta de respaldos semanales del servidor
cd /backup/cpbackup/weekly/
# Crea el archivo remotos.ftp donde se colocaran los comandos ftp
> remotos.ftp echo user USUARIO CONTRASEÑA
# Verifica el numero del dia del mes para conocer la semana (0 = 1era semana) y se cambia a la carpeta correspondiente
if (($((`date +%d`/7)) == 0)); then
 >> remotos.ftp echo cd ServerN/1
 echo "Seleccionada la Carpeta 1 del Servidor N"
elif (($((`date +%d`/7)) == 1)); then
 >> remotos.ftp echo cd ServerN/2
 echo "Seleccionada la Carpeta 2 del Servidor N"
elif (($((`date +%d`/7)) == 2)); then
 >> remotos.ftp echo cd ServerN/1
 echo "Seleccionada la Carpeta 1 del Servidor N"
elif (($((`date +%d`/7)) == 3)); then
 >> remotos.ftp echo cd ServerN/2
 echo "Seleccionada la Carpeta 2 del Servidor N"
fi
# Hace el ciclo para crear los comandos put de cada archivo
echo "Haciendo el Ciclo de archivos a pasar por FTP"
for i in `ls *.tar.gz`
do
 ln -s $i "backup-$i"
 >>remotos.ftp echo put "backup-$i"
done
# Al culminar el ciclo ejecuta la salida del FTP
>>remotos.ftp echo quit
# Ahora se conecta via FTP pasandole como entrada el archivo remotos.ftp creado
echo "Ejecutando la conexion FTP y transfiriendo los archivos"
ftp -u onlinefilefolder.com < remotos.ftp
# Limpia por seguridad los archivos creados
echo "Limpiando los archivos temporales"
echo > remotos.ftp
rm -f remotos.ftp
rm -f backup*
echo "Respaldos Externos realizados para el Servidor N"
date +'%a %e %b %Y %H:%M:%S %Z'
fi
# Fin

El día indicado cada semana se estará haciendo un respaldo en la carpeta ServerN/1 (para las semanas 1 y 3 del mes) ó ServerN/2 (para las semanas 2 y 4 del mes) donde N corresponde al Nro del Servidor.

El USUARIO y la CONTRASEÑA se colocan en función del servicio de GoDaddy asignado al servidor correspondiente.

Para Conectarse por FTP el Host es onlinefilefolder.com y el puerto es el 21. El Usuario y la Contraseña son los correspondientes a los servicios de GoDaddy.

Es posible además ingresar a los servicios a través de www.godaddy.com, luego de ingresar el usuario/contraseña de la cuenta, escogiendo en el Menú: Storage > Online Storage Management y luego haciendo clic en la opción Launch al lado del servicio correspondiente. Esto abre una nueva ventana donde se muestran los servicios y del lado derecho cada uno tiene un ícono que permite abrir las carpetas Launch Online File Folder.

Los archivos se pueden descargar por FTP o vía Web.

NOTA: Deben hacerse varios cambios en función del servidor correspondiente, como son:

  • Sustituir arriba el USUARIO y la CONTRASEÑA por los provistos por GoDaddy
  • Sustituir la letra N en Servidor N por el número que corresponda.
  • En función del día que se quiera ejecutar se debe colocar en el if el número correspondiente  (ejemplo: 0=Dom, 1=Lun, 2=Mar … 6=Sab).
  • Sustituir la N en ServerN por el número que corresponda según el servidor de producción a respaldar de tal forma que los archivos sean guardados en la carpeta correspondiente.

Para instalar el script debemos ingresar por SSH y ejecutar:

cd /backup/cpbackup/weekly
nano respaldos.sh

Colocarle el contenido del Script configurado de acuerdo al servidor correspondiente y guarder el archivo.

Ahora debemos ejecutar:

chmod 700 respaldos.sh

Luego debemos crear el cron que ejecutará los respaldos remotos mensualmente, para ello ejecutamos:

crontab -e

Insertamos al final:

0 20 * * 6 /backup/cpbackup/weekly/respaldos.sh

Guardamos y salimos.

En el caso anterior, el cron se ejecutará todos los sábados a las 8:00pm.

Es importante destacar que el cron lo debemos ejecutar un día diferente al día en que se hacen los backups programados del cpanel para evitar sobrecargas innecesarias.

A su vez, no debemos colocar la ejecución de los cron iguales en todos los servidores de producción ya que GoDaddy causará una cola innecesaria. Lo mejor es colocarlos en horarios diferentes entre los servidores de producción (ej. Sáb 7am, Sáb 2pm, Sáb 7pm, Dom 7am, etc.).

Para finalizar reiniciamos el servicio crond y listo:

service crond restart
Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *