Diferencia entre revisiones de «Rsnapshot»

De La Wiki de KiVi
Sin resumen de edición
 
(No se muestra una edición intermedia del mismo usuario)
Línea 6: Línea 6:


= Configuración =
= Configuración =
La configuración se centra en el fichero:<blockquote>/etc/rsnapshot.conf</blockquote>
La configuración se centra en el fichero:<blockquote>/etc/rsnapshot.conf</blockquote>Dentro solo tenemos que cambiar varios parámetros, vamos a poner un ejemplo en el que salvaremos unos directorios a un segundo disco montado en "/mnt/backup" y en un servidor remoto conectado por [[SSH]].
 
=== Ruta de destino ===
El primer valor es el destino que por defecto es "/var/cache/rsnapshot/" y lo cambiaremos a:<blockquote>snapshot_root    /mnt/backup/rsnapshot/</blockquote>
 
=== EXTERNAL PROGRAM DEPENDENCIES ===
Seguidamente, veremos los programas de dependencias como cp, rm o ssh que hace servir, es por eso que descomentamos la líneas de ssh i du para la conexión remota y el cálculo de uso de disco. <blockquote>cmd_ssh /usr/bin/ssh</blockquote>y<blockquote>cmd_du          /usr/bin/du</blockquote>respectivamente.
Antes de seguir una '''nota importante''', NO han de haber espacios en blanco, las separaciones de los parámetros son tabulaciones.
 
=== BACKUP LEVELS / INTERVALS ===
Seguimos con los intervalos de copias, es decir, cuantas copias ha de guardar antes de borrar la primera o BACKUP LEVELS / INTERVALS.
 
Por defecto viene con diferentes etiquetas de niveles:<blockquote>retain  alpha   6
 
retain  beta    7
 
retain  gamma   4
 
#retain delta   3</blockquote>
 
 
Esto quiere decir que la etiqueta "alpha" guardará hasta 6 capturas, "beta" guardará 7 y "gamma" guardará 4.
 
Pongamos el caso que quiero tener una nueva definición que guardará 10 capturas locales, para eso añadimos:<blockquote>retain local 10</blockquote>
Es importante recordar que los espacios entre palabras han de ser tabulaciones.
 
=== GLOBAL OPTIONS ===
Pasamos a las '''Opciones globales''' donde podemos ver el nivel de informe y de información que puede darnos. El modo "verbose" y el "loglevel" lo vamos a dejar igual, pero vamos a descomentar y modificar la ubicación de donde guardará estos informes para dejarlo en el mismo directorio donde se hacen las copias locales. <blockquote>logfile        /mnt/backup/rsnapshot/log/rsnapshot.log</blockquote>El resto de los valores los dejaremos por defecto y pasaremos a los puntos de copia.
 
=== BACKUP POINTS / SCRIPTS ===
Los puntos de copia son los directorios de los que se hará captura y los scripts serán los programas que se ejecutarán.
 
Primero vamos a especificar las copias locales que viene definidas después de #LOCALHOST. Por defecto son:<blockquote>backup  /home/          localhost/
 
backup  /etc/           localhost/
 
backup  /usr/local/     localhost/</blockquote>Pero podemos añadir:<blockquote>backup  /var/www/       localhost/
 
backup  /srv/                 localhost/</blockquote>Como ejemplo de captura del directorio web y de directorios compartidos. Vuelvo a recordar que hay que utilizar tabulaciones como separaciones y que ha de acabar con el carácter "/".
 
También podemos hacer un respaldo de otro servidor al nuestro, por ejemplo, un servidor que conectaremos por [[SSH]], pongo dos ejemplos, uno con el puerto por defecto (22) y otro con el puerto específico 2202<blockquote># Copias remotas por SSH (puerto estándar)
 
backup  admin@servidor1:/etc/  servidor_remoto1/
 
# Copias remotas por SSH con puerto personalizado
 
backup  admin@servidor2:/srv/  servidor_remoto2/  -p 2202</blockquote>Como muestro, haremos los respaldos del directorio "/etc" del "servidor_remoto1" y del directorio "/srv" del "servidor_remoto2" que utiliza el puerto "2202", ambos desde el usuario "admin"
 
Como podemos ver, el formato utilizado es:<blockquote>backup   <origen>   <destino>   [opciones]</blockquote>
 
 
Ahora guardamos y cerramos el fichero y comprobamos que está bien definido con:<blockquote>sudo rsnapshot configtest</blockquote>Con este comando podemos comprobar que está bien redactado y, en caso contrario, avisa de los errores.


= Uso =
= Uso =
Para lanzar la primera captura, podemos ejecutar:<blockquote>sudo rsnapshot local</blockquote>Esto lanzará el respaldo con etiqueta "local" que hemos generado antes y de la que conservará 10 copias y que podemos ver el progreso con:<blockquote>tail -f /mnt/backup/rsnapshot/log/rsnapshot.log</blockquote>Ahora vamos a lanzar el respaldo en modo depuración ( verbose ), vamos a poner el ejemplo de respaldo "gamma"<blockquote>sudo rsnapshot -v gamma</blockquote>


= Programando copias =
= Programando copias =
Ahora programamos la tarea, por ejemplo, para cada día a las 2:00, para eso abrimos el editor de [[crontab]]:<blockquote>sudo crontab -e</blockquote>Y añadimos:
<nowiki>#</nowiki>Respaldo con rsnapshot
0 2 * * * /usr/bin/rsnapshot local
== Restaurando contenido ==
Resulta que un administrador desea recuperar el directorio "/var/www/wiki" que modificó por error, para recuperar el último respaldo con [[rsync]]:<blockquote>sudo rsync -av //mnt/backup/rsnapshot/local.0/localhost/var/www/wiki/ /var/www/wiki/ </blockquote>
'''Nota - "local.0"''' indica la última rotación, la anterior sería local.1 y la anterior local.2....
'''Explicación de las opciones''':
* <code>-a</code>: Modo archivo (mantiene permisos, propietarios, etc.).
* <code>-v</code>: Modo detallado para ver el progreso.
* <code>/</code>: Asegúrate de incluir la barra al final de la ruta de origen para copiar solo el contenido.
= Diferentes configuraciones =
Todo lo explicado anterior es para una configuración global, es decir, por defecto y para todos los usuarios, pero si queremos tener una configuración independiente se puede especificar con:<blockquote>sudo rsnapshot -c /opt/servidor/rsnapshot.conf alpha</blockquote>Con lo que cargaremos la configuración apartada en "/opt/servidor" y con etiqueta "alpha".
Esto es muy útil si queremos tener "perfiles" de copias y aplicarlas en diferentes destinos locales o remotos.

Revisión actual - 12:05 10 dic 2024

Introducción

rsnapshot es una herramienta poderosa y fácil de usar para gestionar copias de seguridad incrementales en Linux, basada en rsync. Su principal ventaja es que utiliza enlaces duros para almacenar copias de seguridad, lo que minimiza el uso de espacio para archivos sin cambios.

Instalación

La instalación es sencilla, ya que está disponible en la mayoría de los repositorios:

sudo dnf install rsnaphost

Configuración

La configuración se centra en el fichero:

/etc/rsnapshot.conf

Dentro solo tenemos que cambiar varios parámetros, vamos a poner un ejemplo en el que salvaremos unos directorios a un segundo disco montado en "/mnt/backup" y en un servidor remoto conectado por SSH.

Ruta de destino

El primer valor es el destino que por defecto es "/var/cache/rsnapshot/" y lo cambiaremos a:

snapshot_root /mnt/backup/rsnapshot/

EXTERNAL PROGRAM DEPENDENCIES

Seguidamente, veremos los programas de dependencias como cp, rm o ssh que hace servir, es por eso que descomentamos la líneas de ssh i du para la conexión remota y el cálculo de uso de disco.

cmd_ssh /usr/bin/ssh

y

cmd_du          /usr/bin/du

respectivamente.

Antes de seguir una nota importante, NO han de haber espacios en blanco, las separaciones de los parámetros son tabulaciones.

BACKUP LEVELS / INTERVALS

Seguimos con los intervalos de copias, es decir, cuantas copias ha de guardar antes de borrar la primera o BACKUP LEVELS / INTERVALS.

Por defecto viene con diferentes etiquetas de niveles:

retain  alpha   6

retain  beta    7

retain  gamma   4

  1. retain delta   3


Esto quiere decir que la etiqueta "alpha" guardará hasta 6 capturas, "beta" guardará 7 y "gamma" guardará 4.

Pongamos el caso que quiero tener una nueva definición que guardará 10 capturas locales, para eso añadimos:

retain local 10

Es importante recordar que los espacios entre palabras han de ser tabulaciones.

GLOBAL OPTIONS

Pasamos a las Opciones globales donde podemos ver el nivel de informe y de información que puede darnos. El modo "verbose" y el "loglevel" lo vamos a dejar igual, pero vamos a descomentar y modificar la ubicación de donde guardará estos informes para dejarlo en el mismo directorio donde se hacen las copias locales.

logfile        /mnt/backup/rsnapshot/log/rsnapshot.log

El resto de los valores los dejaremos por defecto y pasaremos a los puntos de copia.

BACKUP POINTS / SCRIPTS

Los puntos de copia son los directorios de los que se hará captura y los scripts serán los programas que se ejecutarán.

Primero vamos a especificar las copias locales que viene definidas después de #LOCALHOST. Por defecto son:

backup  /home/          localhost/

backup  /etc/           localhost/

backup  /usr/local/     localhost/

Pero podemos añadir:

backup  /var/www/       localhost/ backup  /srv/                 localhost/

Como ejemplo de captura del directorio web y de directorios compartidos. Vuelvo a recordar que hay que utilizar tabulaciones como separaciones y que ha de acabar con el carácter "/". También podemos hacer un respaldo de otro servidor al nuestro, por ejemplo, un servidor que conectaremos por SSH, pongo dos ejemplos, uno con el puerto por defecto (22) y otro con el puerto específico 2202

# Copias remotas por SSH (puerto estándar)

backup admin@servidor1:/etc/ servidor_remoto1/

  1. Copias remotas por SSH con puerto personalizado

backup admin@servidor2:/srv/ servidor_remoto2/ -p 2202

Como muestro, haremos los respaldos del directorio "/etc" del "servidor_remoto1" y del directorio "/srv" del "servidor_remoto2" que utiliza el puerto "2202", ambos desde el usuario "admin" Como podemos ver, el formato utilizado es:

backup   <origen>   <destino>   [opciones]


Ahora guardamos y cerramos el fichero y comprobamos que está bien definido con:

sudo rsnapshot configtest

Con este comando podemos comprobar que está bien redactado y, en caso contrario, avisa de los errores.

Uso

Para lanzar la primera captura, podemos ejecutar:

sudo rsnapshot local

Esto lanzará el respaldo con etiqueta "local" que hemos generado antes y de la que conservará 10 copias y que podemos ver el progreso con:

tail -f /mnt/backup/rsnapshot/log/rsnapshot.log

Ahora vamos a lanzar el respaldo en modo depuración ( verbose ), vamos a poner el ejemplo de respaldo "gamma"

sudo rsnapshot -v gamma

Programando copias

Ahora programamos la tarea, por ejemplo, para cada día a las 2:00, para eso abrimos el editor de crontab:

sudo crontab -e

Y añadimos:

#Respaldo con rsnapshot

0 2 * * * /usr/bin/rsnapshot local

Restaurando contenido

Resulta que un administrador desea recuperar el directorio "/var/www/wiki" que modificó por error, para recuperar el último respaldo con rsync:

sudo rsync -av //mnt/backup/rsnapshot/local.0/localhost/var/www/wiki/ /var/www/wiki/

Nota - "local.0" indica la última rotación, la anterior sería local.1 y la anterior local.2....

Explicación de las opciones:

  • -a: Modo archivo (mantiene permisos, propietarios, etc.).
  • -v: Modo detallado para ver el progreso.
  • /: Asegúrate de incluir la barra al final de la ruta de origen para copiar solo el contenido.

Diferentes configuraciones

Todo lo explicado anterior es para una configuración global, es decir, por defecto y para todos los usuarios, pero si queremos tener una configuración independiente se puede especificar con:

sudo rsnapshot -c /opt/servidor/rsnapshot.conf alpha

Con lo que cargaremos la configuración apartada en "/opt/servidor" y con etiqueta "alpha".

Esto es muy útil si queremos tener "perfiles" de copias y aplicarlas en diferentes destinos locales o remotos.