Guardar datos en un servidor de backup (Linux)

En este artículo te mostramos cómo realizar una copia de seguridad automática de tus datos y cómo restaurar los datos en un servidor de backup Linux.

En el siguiente script de shell, que se muestra como ejemplo, también te mostraremos cómo utilizar un almacenamiento FTP de IONOS como servidor de copia de seguridad. Recuerda adaptar backupXX.pureserver.info, BACKUP-nombredeusuario y BACKUP-contraseña.

Nota

Este método no es adecuado para realizar una copia de seguridad completa de todos los datos en el servidor.

Crear de copias de seguridad con Shellscript

  • Crea el archivo .netrc como root. Establece los permisos de modo que solo root pueda ver y editar el archivo.

[root@host ~]# touch /root/.netrc
[root@host ~]# chmod 600 /root/.netrc
Añade las siguientes entradas en /root/.netrc:
machine backupXX.onlinehome-server.info
login BACKUP-nombredeusuario
password BACKUP-contraseña

macdef backup
put $1 $2
put $1.md5 $2.md5
quit

Nota

La palabra quit en la última línea debe ir seguida de una línea vacía.

  • El archivo de copia de seguridad se almacena en el servidor antes de crear la copia de seguridad. Esto debe hacerse en /home:
    [root@host ~]# mkdir /home/backup
    [root@host ~]# chmod 700 /home/backup 

  • El propio script de copia de seguridad se almacena en /root/bin/simple-backup.sh. Crea el directorio /root/bin si aún no existe.
    [root@host ~]# mkdir /root/bin
    Crea el script de copia de seguridad y guárdalo como /root/bin/simple-backup.sh.
    #!/bin/sh

    # Nombre del archivo de copia de seguridad
    BACKUP_FILE="backup.tar.gz"

    # Lugar temporal para guardar el archivo de copia de seguridad
    BACKUP_TMP="/home/backup/"

    # Ruta completa a la copia de seguridad
    BACKUP=${BACKUP_TMP}${BACKUP_FILE}

    # Los directorios que deseas guardar en la copia de seguridad
    # En este ejemplo, son las páginas web y los e-mails
    BACKUP_DATA="/home/htdocs /var/spool/mail"

    # Nombre de host del servidor de copia de seguridad
    BACKUP_SERVER="backupXX.pureserver.info"

    # Guarda la UMASK antigua
    UMASK=`umask`

    umask 0077
    tar --exclude=${BACKUP} -czf ${BACKUP} ${BACKUP_DATA} 2>/dev/null
    md5sum ${BACKUP} > ${BACKUP}.md5
    echo "\$ backup ${BACKUP} ${BACKUP_FILE}" | pftp ${BACKUP_SERVER} >/dev/null
    rm -f ${BACKUP} ${BACKUP}.md5
    umask ${UMASK}

    En la línea BACKUP_SERVER="backupXX.onlinehome-server.info debes escribir el nombre de host del servidor de backup.

  • Otorga al script los derechos correctos:
    [root@host ~]# chmod 700 /root/bin/simple-backup.sh

  • Puedes configurar una tarea cron para automatizar la creación de copias de seguridad. Para ello, crea el archivo /etc/cron.d/simple-backup. Para crear copias de seguridad a diario, introduce la tarea cron en el siguiente formato:
    MINUTO HORA * * * root /root/bin/simple-backup.shMINUTO (0-59) y HORA (0-24) se deberán ajustar al tiempo deseado para la copia de seguridad.

Nota

Al realizar una copia de seguridad en el servidor FTP, se sobrescribe la última copia de seguridad del servidor.

Restaurar los datos del servidor de backup

Puedes restaurar la copia de seguridad del servidor de backup en tu servidor y descomprimirla después, por ejemplo, como se indica a continuación:
[root@host ~]# curl ftp://BACKUP-nombredeusuario:BACKUP-contraseña@backup443.onlinehome-server.info/backup.tar.gz > backup.tar.gz

[root@host ~]# tar -xvf backup.tar.gz