[Linux] Copia de seguridad instantánea Rsnapshot

[Linux] Copia de seguridad instantánea Rsnapshot

categoría: tecnología compartida
fecha: 2023/05/05
slug: rsnapshot
estado: publicado
resumen: este artículo presenta los conceptos básicos de la copia de seguridad de instantáneas Rsnapshot, incluida la definición del directorio de copia de seguridad y los parámetros de comando para ejecutar la copia de seguridad. Estos incluyen opciones como link_dest y sync_first, y argumentos de comando como configtest, du, diff y sync. Además, también presenta el principio de la copia de seguridad y cómo ver el uso del disco de los datos de la copia de seguridad.
etiquetas: Linux
tipo: Publicar

Introducción


No se admiten muchos formatos en CSDN, vaya a mi blog para una buena experiencia de visualización : https://www.luoxue.site/article/rsnapshot

Recientemente, la empresa solicitó implementar una función de copia de seguridad instantánea en la máquina todo en uno donde se implementa la aplicación de la empresa. Debido a la máquina todo en uno, puede causar algunos problemas debido a un entorno inadecuado o una operación incorrecta del personal diferente. Si ocurre este tipo de problema, no puede ejecutar sin conexión, solo puede restaurarlo de forma remota.

Entonces, este artículo presenta la herramienta de copia de seguridad de Linux Rsnapshot. Rsnapshot es una rsyncutilidad de instantáneas del sistema de archivos basada en comandos para sistemas operativos Linux y similares a Unix.

Se pueden tomar instantáneas del sistema de archivos en diferentes momentos. Al usar enlaces duros, rsnapshot crea la ilusión de múltiples copias de seguridad completas mientras solo ocupa el espacio de una copia de seguridad completa más diferenciales. Cuando se usa junto con ssh, también se pueden tomar instantáneas de sistemas de archivos remotos.

rsnapshot está escrito en Perl y depende de rsync. Los programas de registro OpenSSH, GNU cp, GNU du y BSD también se recomiendan pero no son obligatorios. Todo esto debería existir en la mayoría de los sistemas Linux.

❓ ¿ Qué es rsync?
rsync es una poderosa herramienta de sincronización de archivos que puede sincronizar archivos y directorios local o remotamente, y puede monitorear y controlar el comportamiento de sincronización. Utiliza un mecanismo similar al protocolo rsync (sobre SSH) para maximizar el rendimiento de transferencia y reducir el uso de ancho de banda. rsync puede lograr una copia de seguridad incremental, es decir, solo se transfieren las partes modificadas del archivo, lo que reduce significativamente el tiempo y los recursos de red necesarios para la sincronización.

Instalar

rsnapshot/INSTALL.md en maestro · rsnapshot/rsnapshot

Requisitos medioambientales

Está escrito completamente en perl, no tiene dependencias de módulos y ha sido probado con las versiones 5.004 a 5.24.3. Debería funcionar en cualquier sistema operativo compatible con UNIX razonablemente moderno.

  • Ha sido probado con éxito en los siguientes sistemas operativos:
    • Debian: 3.0 (woody), 9.9 (extendido)
    • Sombrero rojo: 7.x, 8.0
    • RedHat Enterprise Linux: 3.0 ES, 5, 6, 7
    • Núcleo de Fedora: 1, 3
    • Fedora: 17, 18
    • CentOS: 3, 4, 5, 6, 7
    • WhiteBox Enterprise Linux 3.0
    • Slackware 9.0
    • SuSE: 9.0
    • GentooLinux
    • FreeBSD 4.9-ESTABLE
    • OpenBSD 3.x
    • Solaris 8 (SPARC y x86)
    • Mac OS X
    • IRIX 6.5

Al menos: perl,rsync

Opcional: ssh, logger, GNU cp,GNU du

Instalación de fuente

Dirección de descarga: https://github.com/rsnapshot/rsnapshot/releases

  1. Descomprima el paquete fuente y cambie al directorio fuente.

    tar -xzvf rsnapshot-1.4.5.tar.gz
    cd rsnapshot-1.4.5
    

    Este artículo instala la última versión.

  2. Ejecute el script de configuración.

    De forma predeterminada, el proceso de instalación instalará /usr/localtodos los archivos bajo . Podemos especificar instalar el archivo de configuración /etcen .

    Suponemos que rsync, sshy loggerestán dutodas en sus variables de entorno, si este no es el caso, puede agregar los siguientes parámetros de script de configuración.

    ./configure --with-perl=/usr/bin/perl --with-rsync=/usr/bin/rsync
    

    Utilice la --with-program=/path/to/programsintaxis clásica para especificar la ruta a cualquiera de estos programas.

    Por supuesto, si no tiene las preocupaciones anteriores, puede ejecutar el script de configuración directamente. Averigüe la ubicación de varios programas externos de los que depende rsnapshot. También genera el Makefile. El script de configuración acepta argumentos que se pueden usar para decirle dónde instalar el programa y dónde encontrar programas de apoyo. Para esta instalación, la única opción no predeterminada que necesitamos es colocar el archivo de configuración en /etcel directorio.

    ./configure --sysconfdir=/etc
    
  3. instalador

    Si realizó la operación anterior, entonces está a punto de instalar rsnapshot en /usr/localy el archivo de configuración se encuentra /etcen. A continuación procederemos con la operación de instalación.

    Esta acción puede requerir rootpermisos.

    make install
    
    ruta de archivo describir
    /usr/local/bin/rsnapshot programa de instantáneas
    /usr/local/man/man1/rsnapshot.1 página man
    /etc/rsnapshot.conf.default archivo de configuración de muestra

    *Si luego decide que ya no necesita rsnapshot en su sistema, simplemente elimine los archivos enumerados anteriormente o ejecute **make uninstall en el mismo directorio de origen desde el que instaló. * Por supuesto, la ubicación de estos archivos puede variar si instaló con diferentes opciones.

instalación rpm o deb

  • Instalar en RHEL/CentOS 8/7/6/5/4

    rpm -ivh rsnapshot_1.4.5-1_all.rpm
    
  • En Debian/Ubuntu/Linux Mint

    dpkg -i rsnapshot_1.4.5-1_all.deb
    

instalación del administrador de paquetes

  • Instalar en RHEL/CentOS 8/7/6/5/4

    yum install rsnapshot
    
  • En Debian/Ubuntu/Linux Mint

    apt update
    apt install rsnapshot
    

Crear archivo de configuración

Después de instalar rsnapshot, debe configurarlo. El archivo de configuración predeterminado es /etc/rsnapshot.conf, aunque la ruta exacta puede variar según cómo se instaló el programa. Si este archivo no existe. Probablemente durante la instalación no se creó ni instaló ningún archivo de configuración. Sin embargo, se proporciona un ejemplo de trabajo que puede reproducir. Para copiar el archivo de configuración de ejemplo donde rsnapshot buscará el archivo de configuración real:

cp /etc/rsnapshot.conf.default /etc/rsnapshot.conf

Además, si realiza una actualización, rsnapshot.conf.defaultlos archivos siempre se actualizarán a la última versión y sus archivos de configuración reales estarán seguros. Tenga en cuenta que si ejecuta make upgrade durante una actualización rsnapshot.conf, su archivo rsnapshot.conf.backup.

ejemplo

A continuación, operaremos dos servidores, a saber:

  • Servidor de copia de seguridad: Instale rsnapshot para guardar el contenido de la copia de seguridad.
  • Cliente: El servidor del que se está realizando la copia de seguridad.

Configurar inicio de sesión sin contraseña SSH

Para realizar una copia de seguridad de un servidor Linux remoto, el servidor de copia de seguridad debe poder pasar SSHuna conexión sin contraseña. Para esto, debe crear una SSHclave pública y privada para autenticar rsnapshotel servidor.

ssh-keygenGenere un par de claves usando el comando.

ssh-keygen
# output
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:RVjq/4AJclHttGjr3JvQtK8krOMST3uBE1EnoNRnnUM root@zhangyu
The key's randomart image is:
+---[RSA 3072]----+
|    ...o+*E.     |
|   . .o.+=*      |
|    . .+.+.o     |
|      .oo.o      |
|    . o+S..      |
|    .o+oo* .     |
|     + =*o*      |
|    . +.++.=     |
|     ooo  +oo    |
+----[SHA256]-----+

A continuación, copie la clave pública en el sistema cliente.

ssh-copy-id -i [email protected]
# output
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.168.54 (192.168.168.54)' can't be established.
ECDSA key fingerprint is SHA256:bi+xYDrDy/dFmry/UYbjt4u0C6xGx5nH5UZe20Kp4fU.
Are you sure you want to continue connecting (yes/no/[fingerprint])?' yes
# 上方输入yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys

Authorized users only. All activities may be monitored and reported.

[email protected]'s password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.

⚠️错误:Permiso denegado, inténtalo de nuevo.

/etc/ssh/sshd_configSi ocurre este error, debe modificar el " " en el archivo del cliente #PermitRootLogin prohibit-password, descomentarlo y cambiarlo a " PermitRootLogin yes", luego reinicie el servicio.
NOTA: Los nombres de ubicación del archivo de configuración pueden variar entre versiones o entre sistemas.

Tenga en cuenta que si la operación anterior sigue sin tener éxito, se generará el siguiente error.
Invalid user Administrator from 192.168.168.51 port 57883

May 05 06:55:33 zhangyu sshd[96375]: Invalid user Administrator from 192.168.168.51 port 57883
May 05 06:55:33 zhangyu sshd[96375]: Connection closed by invalid user Administrator 192.168.168.51 port 57883 [preauth]

No dude en actualizar el servidor openssh.

apt upgrade openssh-server

Configurar el servidor de copia de seguridad Rsnapshot

En este ejemplo, usaremos /rsnapshot/un directorio para almacenar instantáneas del sistema de archivos. Esto se llama instantánea raíz . Siéntase libre de colocarlo en cualquier lugar donde tenga mucho espacio libre en el disco.

snapshot_rootSuponiendo que desea cambiar este parámetro, si desea colocarlo en otro lugar, debe reemplazar la ruta predeterminada después del parámetro en el archivo de configuración .

También tenga en cuenta que los campos están separados por tabulaciones, no por espacios. El motivo de esto es facilitar la especificación de rutas de archivos con espacios en ellos.

También tenga en cuenta que debe especificar una barra inclinada al final del nombre del directorio en el archivo. /etc/rsnapshot.confPor ejemplo, debe especificar el nombre del directorio como /rsnapbackup/, no /rsnapbackup.

Definir la raíz de la instantánea y la ubicación del comando

 23 snapshot_root   /rsnapshot/
 24
 25 # If no_create_root is enabled, rsnapshot will not automatically create the
 26 # snapshot_root directory. This is particularly useful if you are backing
 27 # up to removable media, such as a FireWire or USB drive.
 28 #
 29 #no_create_root 1
 30
 31 #################################
 32 # EXTERNAL PROGRAM DEPENDENCIES #
 33 #################################
 34
 35 # LINUX USERS:   Be sure to uncomment "cmd_cp". This gives you extra features.
 36 # EVERYONE ELSE: Leave "cmd_cp" commented out for compatibility.
 37 #
 38 # See the README file or the man page for more details.
 39 #
 40 cmd_cp          /usr/bin/cp
 41
 42 # uncomment this to use the rm program instead of the built-in perl routine.
 43 #
 44 cmd_rm          /usr/bin/rm
 45
 46 # rsync must be enabled for anything to work. This is the only command that
 47 # must be enabled.
 48 #
 49 cmd_rsync       /usr/bin/rsync
 50
 51 # Uncomment this to enable remote ssh backups over rsync.
 52 #
 53 cmd_ssh /usr/bin/ssh
 54
 55 # Comment this out to disable syslog support.
 56 #
 57 cmd_logger      /usr/bin/logger
 58
 59 # Uncomment this to specify the path to "du" for disk usage checks.
 60 # If you have an older version of "du", you may also want to check the
 61 # "du_args" parameter below.
 62 #
 63 cmd_du          /usr/bin/du
 64
 65 # Uncomment this to specify the path to rsnapshot-diff.
 66 #
 67 cmd_rsnapshot_diff      /usr/local/bin/rsnapshot-diff
  • cmd_cp

    cmd_cpEl argumento es GNU cpla ruta al programa en el sistema de archivos. En Linux, elimine el comentario de este parámetro eliminando el signo de almohadilla ( #) que se encuentra delante de él. En BSD, Solaris, IRIX o la mayoría de las demás variantes de UNIX, debe comentarse.

    GNU cpA diferencia del tradicional UNIX cp, es capaz de copiar directorios recursivamente como enlaces duros. Si no tiene uno GNU cp, hay un subejemplo en rsnapshot que se aproxima un poco a esta funcionalidad. A esto le sigue rsyncotra llamada a la que se transfieren los archivos especiales restantes (si los hay). Esto permite que rsnapshot admita todos los tipos de archivos en cada plataforma.

    La regla general es habilitar en sistemas Linux cmd_cpy deshabilitar en sistemas que no son Linux cmd_cp.

  • cmd_rsync

    cmd_rsyncEl parámetro no se puede comentar, debe apuntar a rsyncla versión de trabajo. Si no, el programa no funcionará en absoluto.

    Tenga en cuenta que si está usando IRIX, hay otro rsyncprograma llamado , que es realmente diferente de lo que la mayoría de la gente conoce rsync. Si está utilizando IRIXuna máquina, debe verificar dos veces.

  • cmd_ssh

    sshDeberá descomentar cmd_sshel parámetro si está instalado en su sistema . Al habilitar ssh, puede tomar instantáneas de cualquier cantidad de sistemas remotos.

    Si no lo hace ssh, o solo planea tomar instantáneas del sistema de archivos local, puede comentarlo con seguridad.

  • cmd_logger

    cmd_loggerEl parámetro especifica la ruta al programa registrador. loggeres sysloguna interfaz de línea de comandos para .

    loggerDebería ser una parte estándar de la mayoría de los sistemas tipo UNIX. Parece haber permanecido igual desde 1993, lo cual es bueno para la estabilidad multiplataforma.

    syslogSi comenta este parámetro, deshabilitará el soporte en rsnapshot . Se recomienda que habilite esta función.

  • cmd_du

    cmd_duEl parámetro especificadu la ruta al programa. dues una herramienta de línea de comandos que informa sobre el uso del disco.

    Utilice rsnapshot dupara generar un informe sobre la cantidad de espacio en disco realmente utilizado, que de otro modo sería difícil de estimar debido a todos los enlaces físicos.

    Si lo comenta, rsnapshot intentará usar la versión que encuentre en su ruta du. La versión recomendada , ya que dutiene GNUla mejor selección de funciones y es compatible con la mayoría de las opciones.

    La versión BSD también parece funcionar, aunque no soporta -hlas banderas. Solaris duno funciona en absoluto porque no admite -cparámetros.

  • cmd_rm

    cmd_rmes un parámetro en el archivo de configuración de rsnapshot que especifica la rsnapshot deleteherramienta de eliminación de archivos que se utilizará al eliminar archivos de copia de seguridad (por ejemplo, a través del comando). Estas herramientas suelen incluir rm, gtrsh, trash-put(similar a la función de papelera de reciclaje), etc. Puede especificar la herramienta de eliminación que se utilizará en el archivo de configuración.

  • cmd_rsnapshot-diff

    rsnapshot es una rsyncherramienta de copia de seguridad incremental basada en una tecnología de enlace duro, que puede ayudar a los usuarios a realizar copias de seguridad de los datos con regularidad y conservar varias versiones de los archivos de copia de seguridad. El archivo de copia de seguridad de cada versión se obtiene a través del archivo diferencial generado a partir de la copia de seguridad anterior.

    cmd_rsnapshot_diffEl parámetro se utiliza para especificar el programa o comando utilizado al generar el archivo de diferencias. Normalmente, el valor predeterminado de este parámetro diffes comando, que es una herramienta GNU para comparar las diferencias de dos archivos de texto. Cuando se ejecuta rsnapshot, llama cmd_rsnapshot_diffal programa especificado por el parámetro para calcular las diferencias entre cada versión y generar los archivos de diferencias correspondientes.

Definir el ciclo de copia de seguridad y la configuración global

87 #########################################
88 #     BACKUP LEVELS / INTERVALS         #
89 # Must be unique and in ascending order #
90 # e.g. alpha, beta, gamma, etc.         #
91 #########################################
92
93 retain  alpha   6
94 retain  beta    7
95 retain  gamma   4
96 #retain delta   3
97
98 ############################################
99 #              GLOBAL OPTIONS              #
100 # All are optional, with sensible defaults #
101 ############################################
102
103 # Verbose level, 1 through 5.
104 # 1     Quiet           Print fatal errors only
105 # 2     Default         Print errors and warnings only
106 # 3     Verbose         Show equivalent shell commands being executed
107 # 4     Extra Verbose   Show extra verbose information
108 # 5     Debug mode      Everything
109 #
110 verbose         2
111
112 # Same as "verbose" above, but controls the amount of data sent to the
113 # logfile, if one is being used. The default is 3.
114 #
115 loglevel        3
120 logfile /var/log/rsnapshot
127 lockfile        /var/run/rsnapshot.pid
133 #stop_on_stale_lockfile         0
137 #rsync_short_args       -a
138 #rsync_long_args        --delete --numeric-ids --relative --delete-excluded
142 ssh_args        -p 22
148 du_args -csh
177 link_dest      1
178
186 #sync_first     0
187
192 #use_lazy_deletes       0
193
194 # Number of rsync re-tries. If you experience any network problems or
195 # network card issues that tend to cause ssh to fail with errors like
196 # "Corrupted MAC on input", for example, set this to a non-zero value
197 # to have the rsync operation re-tried.
198 #
199 #rsync_numtries 0
  • retain alpha 6Significa que cada vez que se ejecuta rsnapshot alpha, se creará una nueva instantánea y la nueva instantánea registrará la copia de datos en el momento de la primera copia de seguridad completa. y guarde las últimas seis copias de seguridad en un directorio llamado alpha.0, ,... en el directorio raíz de Rsnapshot; luego, la próxima vez que ejecute el comando, el directorio se eliminará y se volverá a crear.alpha.1alpha.5alpha.5

    "intervalo" es un sinónimo en desuso.

  • OPCIONES GLOBALES

    En las opciones globales, preste atención para observar el número de línea y el contenido. Aquí, debido a la longitud, no se muestra por completo y solo se muestran los elementos de configuración.

    • verbose : establece el nivel de verbosidad para la salida.

    • loglevel : establece el nivel del registro.

    • logfile : ubicación del archivo de registro.

    • lockfile : ubicación del archivo de bloqueo.

    • stop_on_stale_lockfile : de forma predeterminada, rsnapshot verifica el archivo de bloqueo, verifica si el PID se está ejecutando y, si no, trata el archivo de bloqueo como obsoleto y se inicia. Si esta opción está habilitada, rsnapshot deja de ejecutarse cuando el PID en el archivo de bloqueo no se está ejecutando.

    • rsync_short_args : rsyncArgumentos cortos para enviar.

    • rsync_long_args : rsyncArgumentos largos para enviar.

    • ssh_args : sshlos parámetros enviados a, aquí está el número de puerto especificado.

    • du_args : duArgumentos a enviar.

    • link_dest : link_destel parámetro especifica un directorio de copia de seguridad existente. Al realizar esta copia de seguridad, rsnapshot comparará el archivo de copia de seguridad recién creado con el archivo de copia de seguridad existente en este directorio. Si ya existe un archivo de copia de seguridad y es idéntico, use un enlace físico para copiar el archivo de copia de seguridad en lugar de generar una nueva copia.

      ❓¿Por qué habilito link_destparámetros o uso enlaces físicos? En el archivo de configuración de rsnapshot, el parámetro se establece en un valor nulo
      de forma predeterminada , pero no significa que no esté habilitado en absoluto, sino que adopta una estrategia predeterminada implícita llamada "". Cuando no se establece ningún parámetro en el archivo de configuración de rsnapshot , rsnapshot utilizará el directorio de copia de seguridad del día anterior como directorio de enlace físico de forma predeterminada. Si no existe un directorio de copia de seguridad del día anterior, se utiliza el directorio de copia de seguridad existente más reciente.link_destimplicit defaulting
      link_dest

    • sync_first : después de habilitar la opción sync_first, rsnapshot sincronizará la última versión del archivo antes de sincronizar el archivo, lo que puede garantizar la precisión de los datos de la copia de seguridad. Es decir, si hay varias versiones de archivos con el mismo nombre en su directorio de origen, rsnapshot solo realizará una copia de seguridad de la última versión y no creará nuevas copias de datos (como beta1, beta2). La ventaja de hacer esto es que se puede reducir el tamaño de los datos de la copia de seguridad y se puede ahorrar el espacio de almacenamiento de la copia de seguridad. También puede mejorar la eficiencia de la copia de seguridad, ya que no es necesario realizar una copia de seguridad de los datos obsoletos.

      El siguiente es el efecto de la copia de seguridad después de habilitar:

      rsnapshot alpha
      
      ll -a /rsnapshot_back/
      total 16
      drwxr-xr-x  3 zhangyu zhangyu 4096 May  5 08:46 ./
      drwxr-xr-x 21 root    root    4096 May  4 06:40 ../
      drwxr-xr-x  3 root    root    4096 May  5 08:27 alpha.1/
      -rw-rw-r--  1 zhangyu zhangyu  130 May  4 09:17 back.exclude
      
      rsnapshot alpha
      
      ll -a /rsnapshot_back/
      total 16
      drwxr-xr-x  3 zhangyu zhangyu 4096 May  5 08:46 ./
      drwxr-xr-x 21 root    root    4096 May  4 06:40 ../
      drwxr-xr-x  3 root    root    4096 May  5 08:27 alpha.2/
      -rw-rw-r--  1 zhangyu zhangyu  130 May  4 09:17 back.exclude
      

      Es decir, no se conservarán más de 5 directorios, pero las copias de seguridad se realizarán de forma iterativa.

    • use_lazy_deletes : use_lazy_deletesEs una opción en rsnapshot, su función es especificar si habilitar lazy deleteel modo al hacer una copia de seguridad. En este modo, la operación de eliminación no elimina el archivo del disco inmediatamente, sino que lo marca como eliminación pendiente y la eliminación real se realizará en la próxima copia de seguridad. Esto reduce el tiempo y el uso del disco necesarios para las copias de seguridad.

    • rsync_numtries : el número de reintentos fallidos de rsync.

Definir el directorio de respaldo

Configuré para hacer una copia de seguridad del contenido del directorio local /home, en una carpeta debajo de /etcla /usr/localraíz de la instantánea (se creará automáticamente) y configuré para hacer una copia de seguridad del directorio del host remoto (especifique el archivo) en la raíz de la instantánea (bajo la raíz de la instantánea del servidor de respaldo) en el directorio.localhostclienthosts/homeclient

Aviso

No /rsnapbackup/localespecifiqué client/la ruta completa (es decir,) en la configuración anterior, porque hemos mencionado Rootel directorio de respaldo anteriormente, por lo que no necesitamos especificar el directorio raíz de Rsnapshot aquí.

221 ###############################
222 ### BACKUP POINTS / SCRIPTS ###
223 ###############################
224
225 # LOCALHOST
226 backup  /home/          localhost/
227 backup  /etc/           localhost/
228 backup  /usr/local/     localhost/
237 # EXAMPLE.COM
239 backup root@client:/home/     client/

Tenga en cuenta que la ruta de destino especificada aquí se basa en la suposición de que el indicador (que significa crear un enlace de ruta relativa) se pasa a través rsync_long_argsdel parámetro .--relativersync

realizar copia de seguridad

Los siguientes parámetros del comando rsnapshot se enumeran a continuación para la copia de seguridad.

  • prueba de configuración de la instantánea

    Compruebe si el archivo de configuración es correcto.

    rsnapshot configtest
    Syntax OK
    
  • rsnapshot -t alpha
    comprueba si la copia de seguridad se puede ejecutar correctamente, es decir, imprime el comando que se ejecutará en el terminal.

    rsnapshot -t alpha
    
    echo 1776175 > /var/run/rsnapshot.pid
    mkdir -m 0700 -p /rsnapshot/
    mkdir -m 0755 -p /rsnapshot/alpha.0/
    /usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
        /home/ /rsnapshot/alpha.0/localhost/
    mkdir -m 0755 -p /rsnapshot/alpha.0/
    /usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
        --rsh=/usr/bin/ssh -p 22 [email protected]:/home/ \
        /rsnapshot/alpha.0/client/
    touch /rsnapshot/alpha.0/
    

    ❓ Esto introduce el principio de la copia de seguridad. Podemos encontrar uno que haya sido respaldado muchas veces para ver qué comandos ejecutará.

    echo 161392 > /var/run/rsnapshot.pid
    mv /rsnapshot_back/alpha.3/ /rsnapshot_back/alpha.4/
    mv /rsnapshot_back/alpha.2/ /rsnapshot_back/alpha.3/
    mv /rsnapshot_back/alpha.1/ /rsnapshot_back/alpha.2/
    mv /rsnapshot_back/alpha.0/ /rsnapshot_back/alpha.1/
    /usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
       --link-dest=/rsnapshot_back/alpha.1/localhost/ /home/ \
       /rsnapshot_back/alpha.0/localhost/
    

    Este proceso consiste en renombrar el nombre de cada directorio al revés, es decir, alpha.0siempre es el último respaldo, y cuanto mayor sea el número, mayor será el tiempo de existencia. Y durante el proceso de copia de seguridad, los mismos archivos alpha.0con alpha.1los mismos archivos se sincronizan mediante enlaces físicos.
    Por lo tanto, si necesita obtener la última versión de los datos, puede consultar alpha.0el contenido de . Sin embargo, tenga en cuenta que si necesita comparar o restaurar datos respaldados anteriormente, debe usar alpha.1los archivos porque alpha.1todas las versiones de las copias de seguridad históricas se guardan en formato .

  • instantánea de ti

    Mostrar el uso del disco en la raíz de la instantánea. Puede aceptar una ruta de destino opcional para comparar entre instantáneas (por ejemplo, localhost/home/user/foo).

    rsnapshot du
    7.0G    /rsnapshot/alpha.0/
    7.0G    total
    
    du -hc --max-depth=2 /rsnapshot/alpha.*
    6.9G    /rsnapshot/alpha.0/client/home
    6.9G    /rsnapshot/alpha.0/client
    67M     /rsnapshot/alpha.0/localhost/home
    67M     /rsnapshot/alpha.0/localhost
    7.0G    /rsnapshot/alpha.0
    
  • rsnapshot diferencia

    Esta es rsnapshot-diffla interfaz frontal de un programa. Puede aceptar dos argumentos opcionales que pueden ser una ruta del sistema de archivos o un directorio de copia de seguridad en el directorio raíz de la instantánea. De forma predeterminada, se comparan las dos instantáneas más recientes.

    rsnapshot diff alpha.0 alpha.3
    
    Comparing /rsnapshot/alpha.3 to /rsnapshot/alpha.0
    Between /rsnapshot/alpha.3 and /rsnapshot/alpha.0:
      112 were added, taking 7393165017 bytes
      0 were removed, saving 0 bytes
    
  • sincronización instantánea

    Sincroniza archivos sin rotación. " sync_first" necesita estar habilitado para funcionar correctamente. Si se proporciona un destino de punto de copia de seguridad completo en los argumentos opcionales, solo se sincronizarán esos archivos.

    Se debe especificar un directorio al ejecutar el comando, que es el directorio de sincronización.

Resumir

Este artículo presenta los conceptos básicos de la copia de seguridad de instantáneas de Rsnapshot, incluida la definición del directorio de copia de seguridad y los parámetros de comando para realizar la copia de seguridad. Estos incluyen opciones como link_desty sync_first, y argumentos de comando como configtest, y . Además, también presenta el principio de la copia de seguridad y cómo ver el uso del disco de los datos de la copia de seguridad.dudiffsync

documentos de referencia

La herramienta de copia de seguridad del servidor que los ingenieros de operación y mantenimiento de Linux deben conocer: Rsnapshot - Programmer Sought

rsnapshot, una utilidad de copia de seguridad del sistema de archivos remoto local para Linux

https://github.com/rsnapshot/rsnapshot

instantánea | instantánea

Supongo que te gusta

Origin blog.csdn.net/weixin_43645454/article/details/130522769
Recomendado
Clasificación