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/backupEl 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.shPuedes 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