Respaldos

¿Cómo respaldar tu VPS?

Respaldar un directorio de un VPS

Si no estás seguro de cómo conectarte al servidor, te sugerimos primero haber leído esta guía: Primeros pasos

Para usuarios con MacOS X o Linux (scp)

Para respaldar de manera sencilla un directorio que se encuentra en nuestro VPS y guardarlo en nuestro equipo, podemos utilizar el comando scp desde nuestro equipo.

Dentro del VPS (vps-1) podemos ver el directorio de ejemplo /home/guru/public_html y varios archivos de ejemplo en su interior (archivo1.html, archivo2.html, ... ). Listamos el contenido del directorio con ls

$ ls
archivo1.html  archivo2.html  archivo3.php  index.html  javascript.js

Lo primero que vamos a hacer es almacenar todos esos archivos, que están en el directorio en un solo archivo comprimido que llamaremos mirespaldo.tar.gz, utilizando el comando tar

$ tar -vcf mirespaldo.tar.gz .
./
./archivo2.html
./archivo3.php
./javascript.js
tar: ./mirespaldo.tar.gz: file is the archive; not dumped
./index.html
./archivo1.html

Al listar de nuevo los archivos veremos que ya existe nuestro archivo comprimido de respaldo (mirespaldo.tar.gz):

$ ls
archivo1.html  archivo2.html  archivo3.php  index.html  javascript.js  mirespaldo.tar.gz

Si bien ya tenemos un respaldo del directorio, este es local y se encuentra dentro del mismo VPS. En muchas ocasiones es recomendable contar con un respaldo que se encuentre en un equipo distinto. Para descargarlo del servidor hasta nuestro equipo haremos lo siguiente desde el equipo destino:

$ scp guru@138.219.228.50:/home/guru/public_html/mirespaldo.tar.gz /Users/soporte/Downloads/respaldoVPS/
guru@138.219.228.50's password: 
mirespaldo.tar.gz                                                                                                  100%   10KB   1.7MB/s   00:00

Podemos descomponer el comando de la siguiente manera:

$ scp guru@138.219.228.50:/home/guru/public_html/mirespaldo.tar.gz /Users/soporte/Downloads/respaldoVPS/

$ scp Usuario@Host (la IP o dominio de nuestro VPS):Ruta al archivo en el VPS Ruta en nuestro equipo donde guardaremos el archivo

Para usuarios con Windows (Filezilla)

Una manera sencilla de copiar archivos desde el servidor es utilizando FileZilla. Configuramos la conexión con la información de acceso a nuestro servidor (IP/dominio, usuario, contraseña y puerto).Captura-de-pantalla-2018-05-24-a-la(s)-14.56.17.png

Si es primera vez que conectamos veremos una advertencia. Aceptamos la misma y veremos del lado izquierdo los directorios y archivos que están en nuestro equipo y en el lado derecho los del VPS

Captura-de-pantalla-2018-05-24-a-la(s)-14.56.25.png

Captura-de-pantalla-2018-05-24-a-la(s)-14.56.37.png

Basta con copiar y pegar o arrastrar los archivos de un lado al otro para pasarlos a nuestro computador.

Respaldos automáticos con rsync y cron

Vamos a crear un archivo ejecutable llamado rsync_script y luego vamos a permitir ejecutarlo con:

$ chmod +x rsync_script

El contenido del archivo va a ser:

#!/bin/sh
rsync -e 'ssh -p 22' -avzp /home/guru/prueba IPhostRemoto:/home/usuario/respaldos

El comando rsync copia el contenido de un directorio local a uno remoto. En este ejemplo, copiamos contenido desde nuestra VPS: /home/guru/prueba al directorio /home/soporte/respaldos ubicado en el equipo remoto cuya IP o nombre de dominio es IPhostRemoto. Además, especificamos que la conexión ssh va a usar el puerto 22. Es importante destacar que vamos a ejecutar rsync en el VPS, así este enviará al remoto los archivos que este último no tenga en el directorio. Los archivos que ya existen en el servidor remoto no serán eliminados y los que tengan el mismo nombre serán REEMPLAZADOS por los que se encuentren en el directorio local.

Pero antes de programar la ejecución automatizada vamos a poner a prueba si está trabajando bien nuestro comando rsync, ejecutándolo una vez y comprobando si sincronizó exitosamente el contenido del servidor hacia nuestro equipo:

$ rsync -e 'ssh -p 22' -avzp /home/guru/prueba usuario@123.12.1.123:/home/usuario/respaldos

Si el comando copió los archivos correctamente desde el VPS hacia nuestra carpeta /home/usuario/respaldos proseguimos a programarlo con cron.

 Por defecto nuestras VPS con Linux tienen instalado cron y lo único que tenemos que realizar es copiar o mover el script que creamos (rsync_script) a la carpeta /etc/cron.FRECUENCIA donde las opciones para la frecuencia de respaldo son:

hourly (por hora), daily (diario), weekly (semanal), monthly (mensual)

Ejemplo:

$ mv rsync_script /etc/cron.daily

El omenado del ejemplo va a permitir que todos los días se ejecute automáticamente el script que contiene la sincronización con rsync.

Para más opciones de respaldo e información extra puedes consultar la siguiente guía: Cron How To