Después de conseguir acceder por SSH a un servidor remoto de manera completamente automática usando autentificación por claves podemos usar esa ventaja para realizar backups de nuestras webs alojadas en servidores remotos. Solo nos hace falta que el servidor tengo instalado rsync (aparte de tener acceso mediante SSH, claro).

La manera más fácil es crear un simple script en bash y ejecutarlo automáticamente con cron.

Ver ejemplo del script

En la variable DATE guardamos la fecha actual, la usaremos para no sobreeescribir la base de datos y tener una copia de cada dia. Luego en HOST guardamos los datos de conexión SSH y en RUTA el directorio (local) donde queremos guardar la copia de los archivos de la web.

Luego, mediante rsync, sincronizamos los archivos y antes de sobrescribir o borrar un archivo en el PC destino lo guardamos en una carpeta con la fecha por si acaso. Después volcamos la base de datos con mysql. Entonces volveremos para copiar el archivo que hemos creado en el paso anterior y para acabar comprimimos en gzip el archivo SQL para ahorrarnos espacio en el disco (antes hemos usado la compresión en rsync para ahorrar transferencia).

Ahora pasamos a meter el script en cron para no volvernos a preocupar de el.
chmod +x backup
ln -s backup /etc/cron.daily/backup

No hay que olvidar de cambiar las variables HOST, RUTA y los datos de usuario, contraseña y nombre de la base de datos del backup con mysqldump.

Deja tu comentario