GNU/Linux >> Tutoriales Linux >  >> Linux

Herramientas de administrador de sistemas:uso de rsync para administrar la copia de seguridad, la restauración y la sincronización de archivos

Como administrador de sistemas, gasto la mayor parte de mi energía en dos cosas (aparte de asegurarme de que haya café):preocuparme por tener copias de seguridad y descubrir la mejor manera y la más simple de hacer las cosas. Una de mis herramientas favoritas para resolver ambos problemas se llama rsync .

Rsync fue creado por una de las mismas personas que inventaron Samba, Andrew Tridgell. Es una herramienta tan útil y flexible que se incluye en todas las versiones de Linux y se ha portado a otros sistemas operativos. Simplemente, rsync es una herramienta para copiar archivos. Sin embargo, es mucho más poderoso que eso.

  • Mantiene dos conjuntos de archivos actualizados y sincronizados.
  • Se ejecuta como un comando y se puede programar.
  • Comprime y cifra el flujo de datos.
  • Utiliza múltiples tipos de clientes de acceso remoto (SSH y RSH, por ejemplo).

Así que no sorprende que sea el favorito de muchos administradores de sistemas.

Lo básico

Como el mv y cp comando, en su forma más básica rsync solo necesita un origen y un destino:

[root@milo enable]# rsync ./foo/testfoo ./bar/

[root@milo enable]# ls -ilR
.:
total 8
5079202 drwxrwxr-x 2 skipworthy skipworthy 4096 Jun 11 15:15 bar
5079201 drwxrwxr-x 2 skipworthy skipworthy 4096 Jun 11 15:08 foo

./bar:
total 8
5001398 -rw-rw-r-- 1 skipworthy skipworthy 8 Jun 11 15:08 testbar
4982446 -rw-rw-r-- 1 root       root       8 Jun 11 15:15 testfoo

./foo:
total 4
5001268 -rw-rw-r-- 1 skipworthy skipworthy 8 Jun 11 15:08 testfoo

Copiamos testfoo a la bar directorio. No es gran cosa, en realidad.

Ahora, agreguemos un archivo a ./foo y volver a sincronizar:

[root@milo enable]# touch ./foo/bat.txt

[root@milo enable]# rsync ./foo/* ./bar/
[root@milo enable]# ls -ilR
.:
total 8
5079202 drwxrwxr-x 2 skipworthy skipworthy 4096 Jun 11 15:45 bar
5079201 drwxrwxr-x 2 skipworthy skipworthy 4096 Jun 11 15:25 foo

./bar:
total 8
4992599 -rw-r--r-- 1 root       root       0 Jun 11 15:45 bat.txt
5001398 -rw-rw-r-- 1 skipworthy skipworthy 8 Jun 11 15:08 testbar
4992604 -rw-rw-r-- 1 root       root       8 Jun 11 15:45 testfoo

./foo:
total 4
5002591 -rw-r--r-- 1 root       root       0 Jun 11 15:25 bat.txt
5001268 -rw-rw-r-- 1 skipworthy skipworthy 8 Jun 11 15:08 testfoo

En este punto, queremos señalar un par de cosas. Primero, cuando volvimos a ejecutar rsync , volvió a copiar testfoo y actualizó el atime . Además, cada vez que copia un archivo, le da al archivo un nuevo inode número. Por lo tanto, en lo que respecta al sistema de archivos, es un archivo totalmente diferente (porque lo es:copió todo la información cada vez). Finalmente, tenga en cuenta que cuando rsync el archivo, cambia la propiedad al usuario que ejecutó el comando (root, en este caso).

Todo esto es importante si queremos hacer copias de seguridad. Este comportamiento es el mismo que el cp dominio. También podemos usar el cp Comando para copiar directorios recursivamente, así como preservar atributos y propiedad. La gran diferencia es que rsync puede hacer una suma de verificación del archivo y comparar los archivos de origen y destino, donde cp solo mira el atime valor. Rsync La funcionalidad adicional de es útil para preservar la integridad de la copia de seguridad (hablaremos de la integridad más adelante en esta serie).

Así que actualicemos solo uno de estos archivos y veamos qué rsync hace:

[root@milo enable]# echo 'this is new text'>>./foo/testfoo
 
[root@milo enable]# ls -al ./foo
 
-rw-rw-r-- 1 skipworthy skipworthy   25 Jun 11 16:13 testfoo

[root@milo enable]# rsync -aruv ./foo/* ./bar/
sending incremental file list
testfoo

sent 194 bytes  received 35 bytes  458.00 bytes/sec
total size is 25  speedup is 0.11

[root@milo enable]# ls -ilR
.:
total 8
5079202 drwxrwxr-x 2 skipworthy skipworthy 4096 Jun 11 16:16 bar
5079201 drwxrwxr-x 2 skipworthy skipworthy 4096 Jun 11 15:56 foo

./bar:
total 8
4992599 -rw-r--r-- 1 root       root        0 Jun 11 15:45 bat.txt
4998080 -rw-r--r-- 1 root       root        0 Jun 11 15:56 footoo.txt
5001398 -rw-rw-r-- 1 skipworthy skipworthy  8 Jun 11 15:08 testbar
4983541 -rw-rw-r-- 1 skipworthy skipworthy 25 Jun 11 16:13 testfoo

./foo:
total 4
5002591 -rw-r--r-- 1 root       root        0 Jun 11 15:25 bat.txt
4997949 -rw-rw-r-- 1 skipworthy skipworthy  0 Jun 11 15:56 footoo.txt
5001268 -rw-rw-r-- 1 skipworthy skipworthy 25 Jun 11 16:13 testfoo

Tenga en cuenta que esta vez usamos algunos interruptores:

  • -a Modo de archivo, conserva mtime , permisos y enlaces simbólicos.
  • -r Modo recursivo, profundiza en cualquier directorio y los sincroniza (debería ser redundante con -a cambiar, pero siempre lo especifico de todos modos).
  • -u Solo actualiza archivos si mtime en la fuente es más reciente.
  • -v Modo detallado, le dice lo que está haciendo (siempre es bueno poder monitorear lo que está sucediendo. Otro truco útil es canalizar esta salida a un archivo y verificarlo más tarde).

Restaurar archivo con rsync

Así que supongamos que es unas semanas más tarde. El director financiero llama y dice que algo anda mal:faltan muchos archivos en su directorio /foo.

./foo:
total 8
5002591 -rw-r--r-- 1 root       root        0 Jun 11 15:25 bat.txt
4997949 -rw-rw-r-- 1 skipworthy skipworthy 33 Jul 24 15:32 footoo.txt
5001268 -rw-rw-r-- 1 skipworthy skipworthy 25 Jun 11 16:13 testfoo

Echamos un vistazo a las copias de seguridad y vemos los archivos que faltan:

./bar:
total 12
4992599 -rw-r--r-- 1 root       root        0 Jun 11 15:45 bat.txt
4994298 -rw-rw-r-- 1 skipworthy skipworthy 33 Jul 24 15:32 footoo.txt
4994359 -rw-r--r-- 1 root       root        0 Jul 24 15:31 laterfiles1.txt
4994367 -rw-r--r-- 1 root       root        0 Jul 24 15:31 laterfiles2.txt
4994374 -rw-r--r-- 1 root       root        0 Jul 24 15:31 laterfiles3.txt
4994413 -rw-r--r-- 1 root       root        0 Jul 24 15:31 laterfiles4.txt
5001398 -rw-rw-r-- 1 skipworthy skipworthy  8 Jun 11 15:08 testbar
4983541 -rw-rw-r-- 1 skipworthy skipworthy 25 Jun 11 16:13 testfoo

Un rápido rsync restaurar:

[root@milo enable]# rsync -aruv ./bar/* ./foo
sending incremental file list
bat.txt
laterfiles1.txt
laterfiles2.txt
laterfiles3.txt
laterfiles4.txt
testbar

Y:

./foo:
total 12
4994387 -rw-r--r-- 1 root       root        0 Jun 11 15:45 bat.txt
4997949 -rw-rw-r-- 1 skipworthy skipworthy 33 Jul 24 15:32 footoo.txt
4994562 -rw-r--r-- 1 root       root        0 Jul 24 15:31 laterfiles1.txt
4994564 -rw-r--r-- 1 root       root        0 Jul 24 15:31 laterfiles2.txt
4994565 -rw-r--r-- 1 root       root        0 Jul 24 15:31 laterfiles3.txt
4994567 -rw-r--r-- 1 root       root        0 Jul 24 15:31 laterfiles4.txt
4994579 -rw-rw-r-- 1 skipworthy skipworthy  8 Jun 11 15:08 testbar
5001268 -rw-rw-r-- 1 skipworthy skipworthy 25 Jun 11 16:13 testfoo

Los archivos que faltan se restauran o actualizan a partir de las copias de seguridad más recientes, pero los archivos existentes, que no cambiaron, se dejan solos. Además, tenga en cuenta que la propiedad de footoo.txt se conservó.

Resumir

Te animo a echar un vistazo (como siempre) a la página man de rsync y pruebe este útil comando.

Aquí hay algunos cambios más a considerar:

  • -r (recursivo)
  • -b (copias de seguridad)
  • -R (pariente)
  • -u (actualizar - copiar solo archivos modificados)
  • -P (progreso)
  • -c (comprimir)
  • -p (conservar permisos)

En el próximo artículo de esta serie, iremos un poco más allá y veremos el rsync remoto. y algunas de las otras características más avanzadas de este comando.

[ Curso gratuito en línea:Descripción general técnica de Red Hat Enterprise Linux. ]


Linux
  1. MySQL:cómo hacer una copia de seguridad (volcar) y restaurar una base de datos usando mysqldump

  2. Cómo hacer una copia de seguridad y restaurar la configuración de la aplicación usando Mackup en un sistema Linux recién instalado

  3. Cómo hacer una copia de seguridad y restaurar el repositorio SVN en Linux

  4. Uso de las opciones de inclusión y exclusión de Rsync para incluir el directorio y el archivo por patrón

  5. Linux ext4 restaurar archivos y derechos de acceso al directorio después de una mala copia de seguridad/restauración

Cómo hacer una copia de seguridad y restaurar la tarjeta SD para Raspberry Pi

Cómo hacer una copia de seguridad y restaurar datos usando Ristic en Linux

Cómo hacer una copia de seguridad y restaurar archivos usando BorgBackup en Linux

Cómo hacer una copia de seguridad de archivos y directorios usando Rsync en Linux

Copia de seguridad y restauración de aplicaciones de Ubuntu usando Aptik

Cómo utilizar Timeshift para realizar copias de seguridad y restaurar Linux