LinuxParty
Tengo un servidor HP con hardware RAID 6 ejecutando RHEL / CentOS Linux 5.x / 6.x / 7.x. Me gustaría que actuara como un servidor de respaldo para mis otros servidores, computadoras de escritorio y computadoras portátiles, todos con Linux / MacOS o algún sistema tipo Unix. El servidor debe mantener la copia de seguridad en formato de hora, día y mes. ¿Cómo configuro mi servidor Red Hat Enterprise Linux o CentOS Linux como servidor de copia de seguridad remota o servidor de instantáneas usando rsnapshot?
rsnapshot es un software de instantáneas del sistema de archivos de fuente abierta y gratuita. Es una solución de copia de seguridad simple, confiable y de recuperación ante desastres. Es un programa de copia de seguridad remoto que utiliza rsync para tomar instantáneas de respaldo de sistemas de archivos.
Utiliza enlaces duros para ahorrar espacio en el disco y ofrece las siguientes características:
- Instantánea del sistema de archivos: para sistemas locales o remotos
- Copia de seguridad de la base de datos: copia de seguridad de MySQL / PgSQL
- Seguro: el tráfico entre el servidor de copia de seguridad remoto siempre se cifra con openssh
- Copia de seguridad completa: más copias de seguridad incrementales diarias, horarias y mensuales
- Fácil de restaurar: los archivos pueden ser restaurados por los usuarios que los poseen, sin que el usuario raíz participe.
- Copia de seguridad automatizada: se ejecuta en segundo plano a través de cron .
- Ancho de banda amigable: rsync también puede ahorrar ancho de banda
Este tutorial le muestra cómo instalar y usar rsnapshot en un servidor basado en CentOS o RHEL .
Configuración de muestra
- snapshot.example.com - El server HP con RAID 6 configurado con Red Hat / CentOS Linux actúa como servidor de respaldo para otros clientes.
- DNS ns1.example.com - El servidor de Red Hat actúa como servidor de nombre primario.
- DNS ns2.example.com - El servidor de Red Hat actúa como servidor de nombres secundario.
- www.example.com - Red Hat ejecutando el servidor web Apache.
- mysql.example.com - Red Hat mysql servidor.
Instalar rsnapshot en una caja RHEL / CentOS Linux
Inicie sesión en el servidor de snapshot.example.com. Escriba el siguiente comando yum para instalar rsnapshot ( primero habilite el repositorio de EPEL en CentOS / RHEL )
Cómo habilitar el repositorio EPEL en RHEL / RedHat / CentOS 5 / 6 / 7?
# yum install rsnapshot
Resultados de muestra:
Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.123host.vn * epel: ftp.cuhk.edu.hk * extras: mirrors.vinahost.vn * updates: centos.excellmedia.net Resolving Dependencies --> Running transaction check ---> Package rsnapshot.noarch 0:1.4.2-2.el7 will be installed --> Processing Dependency: rsync for package: rsnapshot-1.4.2-2.el7.noarch --> Running transaction check ---> Package rsync.x86_64 0:3.0.9-18.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved =============================================================================== Package Arch Version Repository Size =============================================================================== Installing: rsnapshot noarch 1.4.2-2.el7 epel 116 k Installing for dependencies: rsync x86_64 3.0.9-18.el7 base 360 k Transaction Summary =============================================================================== Install 1 Package (+1 Dependent package) Total download size: 476 k Installed size: 1.1 M Is this ok [y/d/N]: y Downloading packages: (1/2): rsync-3.0.9-18.el7.x86_64.rpm | 360 kB 00:00 (2/2): rsnapshot-1.4.2-2.el7.noarch.rpm | 116 kB 00:01 ------------------------------------------------------------------------------- Total 265 kB/s | 476 kB 00:01 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : rsync-3.0.9-18.el7.x86_64 1/2 Installing : rsnapshot-1.4.2-2.el7.noarch 2/2 Verifying : rsnapshot-1.4.2-2.el7.noarch 1/2 Verifying : rsync-3.0.9-18.el7.x86_64 2/2 Installed: rsnapshot.noarch 0:1.4.2-2.el7 Dependency Installed: rsync.x86_64 0:3.0.9-18.el7 Complete! |
Configurar rsnapshot
Debe realizar los siguientes pasos.
Paso # 1: configurar la contraseña menos el inicio de sesión
Para realizar una copia de seguridad remota, debe configurar ssh sin contraseña con ssh-keygen y ssh-copy-id.
Cree su clave rsa ssh y cárguela en todos los servidores usando scp o ssh-copy-id. Debe escribir los siguientes comandos en el servidor snapshot.example.com:
# ssh-keygen -t rsa
O
# ssh-keygen -t rsa -b 4096 -C "My rsnapshot backup server key"
Le sugiero encarecidamente que proteja con contraseña.
##############################
## WARNING OVERWRITING FILE ##
##############################
# scp .ssh/id_rsa.pub Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.:.ssh/authorized_keys2
# scp .ssh/id_rsa.pub Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.:.ssh/authorized_keys2
# scp .ssh/id_rsa.pub Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.:.ssh/authorized_keys2
# scp .ssh/id_rsa.pub Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.:.ssh/authorized_keys2
Para evitar sobrescribir archivos usando el comando ssh-copy-id de la siguiente manera:
# ssh-copy-id -i ~/.ssh/id_rsa.pub Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
# ssh-copy-id -i ~/.ssh/id_rsa.pub Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
# ssh-copy-id -i ~/.ssh/id_rsa.pub Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
# ssh-copy-id -i ~/.ssh/id_rsa.pub Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
Paso # 2: Configurar rsnapshot
El archivo de configuración predeterminado se encuentra en /etc/rsnapshot.conf. Abra el archivo de configuración usando un editor de texto, ingrese:
# vi /etc/rsnapshot.conf
Reglas de configuración
Debe seguir dos reglas de configuración:
- El archivo de configuración rsnapshot requiere pestañas entre los elementos .
- Todos los directorios requieren una barra inclinada . Por ejemplo, /home/ es la forma correcta de especificar el directorio, pero /home está mal.
Primero, especifique el directorio raíz para almacenar todas las instantáneas como /snapshots/ o /dynvol/snapshot/ según su configuración RAID, ingrese:
snapshot_root /raiddisk/snapshots/
Debe separar snapshot_root y /raiddisk/snapshots/ con una tecla [tab], es decir, escriba snapshot_root y haga clic en la tecla [tab] una vez y escriba /raiddisk/snapshots/.
Definir intervalos de instantáneas
Debe especificar intervalos de respaldo, es decir, especificar intervalos por hora, día, semana y mes:
interval hourly 6 interval daily 7 interval weekly 4 interval monthly 3
La línea "intervalo por hora 6" significa 6 copias de seguridad por hora por día. Siéntase libre de adaptar la configuración según sus requisitos de copia de seguridad y frecuencia de instantáneas. También puede hacer una copia de respaldo anual de la opción:
######################################### # NIVELES DE RESPALDO / INTERVALOS # # Debe ser único y en orden ascendente # ######################################### interval hourly 6 interval daily 7 interval weekly 4 interval monthly 12 interval yearly 5 |
Directorios de copia de seguridad remota
Para hacer una copia de seguridad de /var/named/ y /etc/ directory desde ns1.example.com y ns2.example.com, añada:
backup Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.:/etc/ ns1.example.com/ backup Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.:/var/named/ ns1.example.com/ backup Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.:/etc/ ns2.example.com/ backup Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.:/var/named/ ns2.example.com/
Para hacer una copia de seguridad del directorio /var/www/, /var/log/httpd/ y /etc/ de www.example.com, ingrese
backup Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.:/var/www/ www.example.com/ backup Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.:/etc/ www.example.com/ backup Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.:/var/log/httpd/ www.example.com/
Para hacer una copia de seguridad de los archivos de base de datos mysql almacenados en /var/lib/mysql/, ingrese:
backup Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.:/var/lib/mysql/ mysql.example.com/dbdump/
También es posible usar este script bash shell para hacer una copia de seguridad de la base de datos mysql cuando se usa el servidor rsnapshot. Guarde y cierre el archivo. Para probar su configuración, ingrese:
# rsnapshot configtest
Muestra de salida:
Syntax OK
Programar trabajo cron
Cree un nuevo archivo llamado /etc/cron.d/rsnapshot archivo cron. Los siguientes valores utilizados corresponden a los ejemplos en /etc/rsnapshot.conf.
0 */4 * * * /usr/bin/rsnapshot hourly 50 23 * * * /usr/bin/rsnapshot daily 40 23 * * 6 /usr/bin/rsnapshot weekly 30 23 1 * * /usr/bin/rsnapshot monthly # yearly if set # 0 0 1 1 * /usr/bin/rsnapshot yearly
Guarde y cierre el archivo. Ahora rsnapshot funcionará de la siguiente manera para hacer una copia de seguridad de los archivos de los cuadros remotos:
- 6 copias de seguridad por hora al día (una vez cada 4 horas, a 0,4,8,12,16,20)
- 1 copia de seguridad diaria todos los días, a las 11:50 p.m.
- 1 copia de seguridad semanal todas las semanas, a las 11:40 p. M., Los sábados (6to día de la semana)
- 1 copia de seguridad mensual todos los meses, a las 11:30 PM del primer día del mes
¿Cómo veo mis copias de seguridad?
Para ver el directorio de cambios de respaldo en
# cd /raiddisk/snapshots/
# ls -l
Muestra de salida:
drwxr-xr-x 4 root root 4096 2008-07-04 06:04 daily.0 drwxr-xr-x 4 root root 4096 2008-07-03 06:04 daily.1 drwxr-xr-x 4 root root 4096 2008-07-02 06:03 daily.2 drwxr-xr-x 4 root root 4096 2008-07-01 06:02 daily.3 drwxr-xr-x 4 root root 4096 2008-06-30 06:02 daily.4 drwxr-xr-x 4 root root 4096 2008-06-29 06:05 daily.5 drwxr-xr-x 4 root root 4096 2008-06-28 06:04 daily.6 drwxr-xr-x 4 root root 4096 2008-07-05 18:05 hourly.0 drwxr-xr-x 4 root root 4096 2008-07-05 15:06 hourly.1 drwxr-xr-x 4 root root 4096 2008-07-05 12:06 hourly.2 drwxr-xr-x 4 root root 4096 2008-07-05 09:05 hourly.3 drwxr-xr-x 4 root root 4096 2008-07-05 06:04 hourly.4 drwxr-xr-x 4 root root 4096 2008-07-05 03:04 hourly.5 drwxr-xr-x 4 root root 4096 2008-07-05 00:05 hourly.6 drwxr-xr-x 4 root root 4096 2008-07-04 21:05 hourly.7 drwxr-xr-x 4 root root 4096 2008-06-22 06:04 weekly.0 drwxr-xr-x 4 root root 4096 2008-06-15 09:05 weekly.1 drwxr-xr-x 4 root root 4096 2008-06-08 06:04 weekly.2
¿Cómo restauro la copia de seguridad?
Digamos que le gustaría restaurar una copia de seguridad para www.example.com. Escriba el comando de la siguiente manera (seleccione día y fecha desde ls -l salida):
# cd /raiddisk/snapshots/
# ls -l
# cd hourly.0/www.example.com/
# scp -r var/www/ Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.:/var/www/
# scp -r etc/httpd/ Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.:/etc/httpd/
¿Cómo excluyo archivos de la copia de seguridad?
Para excluir archivos de la copia de seguridad, abra el archivo rsnapshot.conf y agregue la siguiente línea:
exclude_file /etc/rsnapshot.exclude.www.example.com
Cree /etc/rsnapshot.exclude.www.example.com de la siguiente manera:
/var/www/tmp/ /var/www/*.cache