Guardar datos en un servidor de backup (Linux)

En este artículo le mostramos cómo realizar una copia de seguridad automática de sus 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 le mostraremos cómo utilizar un almacenamiento FTP de IONOS como servidor de copia de seguridad. Recuerde 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

  • Cree el archivo .netrc como root. Establezca 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ñada 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. Cree el directorio /root/bin si aún no existe.
    [root@host ~]# mkdir /root/bin
    Cree el script de copia de seguridad y guárdelo 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 desea guardar en la copia de seguridad
    # En este ejemplo, son las páginas web y los correos electrónicos
    BACKUP_DATA="/home/htdocs /var/spool/mail"

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

    # Guarde 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 debe escribir el nombre de host del servidor de backup.

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

  • Puede configurar una tarea cron para automatizar la creación de copias de seguridad. Para ello, cree el archivo /etc/cron.d/simple-backup. Para crear copias de seguridad a diario, introduzca 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

Puede restaurar la copia de seguridad del servidor de backup en su 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