Trabajando con RSYNC
- 1436
- 292
- Sr. Eduardo Menchaca
Como administrador del sistema o simplemente un usuario doméstico consciente de la copia de seguridad, tarde o temprano (generalmente antes) tendrá que lidiar con copias de seguridad. Los desastres ocurren, desde tormentas eléctricas hasta fallas de impulso, y uno debe estar preparado. No podemos enfatizar lo suficiente la importancia de tener copias de datos importantes. Si bien todo el concepto de respaldo es demasiado largo para este artículo, nos centraremos en RSYNC para lo que se llama copias de seguridad incrementales.
Las copias de seguridad incrementales se basan en la idea de que, una vez que tiene una copia de los datos que necesita hacer una copia de seguridad, las copias de seguridad consecuentes de los mismos datos deben ser incrementales, lo que significa que solo actualiza la copia de copia de seguridad con las diferencias desde la última operación, no, no Crea otra copia completa. Detallaremos aquí una configuración que tenemos en casa para respaldar datos importantes, pero los ejemplos aquí se pueden usar en instalaciones más grandes. Una vez que comience, sabrá qué, dónde y cuándo necesita.
Si tiene un servidor de copia de seguridad que está arriba las 24 horas del día, los 7 días de la semana, puede crear un cronjob para hacer una copia de seguridad de sus datos periódicamente. Dado que nuestro ejemplo está basado en el hogar, tenemos un servidor de copia de seguridad, pero dado que no está arriba todo el tiempo, le mostraremos cómo hacerlo manualmente. RSYNC debe instalarse en ambos sistemas, y eso es todo, no se deben realizar otras tareas de configuración, al menos en casos simples. Recuerde que no está por absoluto vinculado a Linux u otra plataforma Unix: RSYNC también está disponible para Windows. Si le preocupa la seguridad, RSYNC está trabajando en SSH y puede considerarse como un reemplazo seguro para RCP
comando (copia remota), por lo que todo está bien.
Trabajando con RSYNC
En nuestro escenario, la máquina que contiene archivos que se respaldarán es una máquina de prueba Debian; Simplemente hicimos un
# aptitud instalar rsync
para instalarlo y eso fue todo lo que teníamos que hacer en esa máquina. La máquina de respaldo es un FreeBSD 8.Caja de 2 estables, y allí lo hicimos
# cd/usr/ports/net/rsync && hacer instalar limpio
para instalar rsync. No hicimos una configuración adicional en ninguna de estas máquinas, pero nuevamente, este es un escenario simple. Lea el manual RSYNC para obtener opciones que pueda necesitar para su caso particular. Antes de llegar al trato real, expliquemos un poco sobre las opciones habituales de RSYNC y las opciones de línea de comandos (sí, sabemos, el 90% no lee los manuales). Con RSYNC puede extraer o empujar los datos desde/hacia su destino, por lo que generalmente la sintaxis será
[Pull] RSYNC [Opciones] $ Source $ Destino [PUSH] RSYNC [OPCIONES] $ Destino $ Source
La ruta local puede ser cualquier ruta relativa o absoluta. La ruta remota es exactamente como la que usa con SSH o algunos otros programas que funcionan a través de SSH: $ user@$ hostname o $ ipaddress: $ ruta . Traducir lo que dijimos anteriormente y usar un ejemplo práctico (la unidad para almacenar copias de seguridad está montada en /data1 en la máquina BSD y queremos hacer una copia de seguridad de todas las películas del usuario en 10.1.3.98), queremos empujar los archivos desde la caja de Debian a la caja de FreeBSD, por lo que lo hacemos
$ RSYNC [Opciones] [email protected]:/home/user/películas//data1/
del terminal de FreeBsd. Por supuesto, debe sustituir el 'usuario', ubicaciones y direcciones IP con lo que sea adecuado en su sitio. Como dijimos, puede reemplazar fácilmente la dirección IP con un nombre de host, ya sea en su red local (asegúrese de editar /etc.hosts) o un nombre de host remoto que es conocido por su servidor DNS. Asegúrese también de que tenga los permisos correctos establecidos para la carpeta de destino y que pueda leer el directorio de datos de origen también. El uso del comando anterior sin opciones no hará nada, ya que la fuente es un directorio, no un archivo específico. Puedes usar comodines con rsync, como
$ RSYNC [Opciones] [email protected]:/home/user/películas/*/data1/
Dado que RSYNC es un software inteligente, es mejor si usa
$ rsync -avr [email protected]:/home/user/películas//data1/
que copiará los datos en el directorio de películas en modo de archivo (-a) verbosamente (-v) y recursivamente (-r). Larga historia corta, si desea copiar un directorio completo, no se olvide de -r y si desea exactamente lo contrario, use -d, que copiará solo la estructura del directorio, sin los archivos. Si el ancho de banda es una preocupación, agregue la bandera -z, pero recuerde que siempre hay una compensación entre el tiempo de banda y el tiempo de la CPU: los datos comprimidos estresan más las máquinas, ambas, porque se comprime y envía, el otro recibe y descomprime. En pocas palabras, eso es todo lo que realmente hicimos por nuestro caso aquí. Usaremos los comandos exactos más el indicador -Backup más tarde cuando quisiéramos sincronizar los datos del cuadro de copia de seguridad y, como se indicó anteriormente, solo las diferencias se sincronizarán. Sin embargo, le presentaremos otras opciones útiles y ampliamente utilizadas para RSYNC, ya que este es uno de los muchos escenarios en los que RSYNC puede servirle, especialmente que es pequeño y rápido.
Otras opciones para RSYNC
RSYNC tiene muchas otras opciones útiles: lo que hicimos fue solo darle un ejemplo común y simple. El indicador -e le permite especificar el shell remoto para usar con RSYNC, como
$ rsync -e ssh [argumentos]
Si no desea sincronizar archivos que sean más nuevos en el lado de recepción, usar -u lo llevará allí. -El progreso le mostrará un buen informe en vivo detallado sobre el proceso de sincronización remota. -Eliminar eliminará el archivo en la máquina de destino, si ya está allí. Si el archivo no existe y no desea que se cree, por lo que necesita una actualización pura de los archivos ya existentes, use -existing. Quiero ver los cambios? No hay problema, usa -i.
Ahora, estas son solo una pequeña parte de la gran cantidad de opciones que ofrece RSYNC, le dejaremos descubrir el resto. Entonces, nuestro comando inicial, con todas estas nuevas opciones que hemos aprendido, se vería así:
$ rsync -e ssh -avriz --progress --delete [email protected]:/home/user/películas//data1/
Esperamos que encuentre este software tanto que nos gusta, y si tiene alguna pregunta, sí, repitemos esto una y otra vez: use el manual, Luke. Recuerda para usar RSYNC con cuidado ya que, mientras se reunió, algunas de sus opciones pueden ser bastante destructivas. Al final, para ayudarlo con las situaciones diarias, le presentaremos algunos ejemplos:
Más ejemplos de RSYNC
1. Digamos que desea sincronizar solo un archivo. Obviamente, no necesitas -r, ya que es específico del directorio, por lo que lo harás
$ rsync -v user@host:/etc/adduser.conf /root /
2. Tal vez quieras jugar con patrones más avanzados de lo que tu shell puede proporcionar, o simplemente quieres excluir/incluir algunos archivos/directorios. Simplemente usará -includas y excluye, como así:
$ rsync -avz --include 'g*' --exclude '*' user@host:/etc//root/config/
Este comando solo copiará directorios de / etc / que comienzan con una 'g' y excluirán todo lo demás.
3. Quizás desee limitar las transferencias RSYNC de tamaño máximo de archivo desde el destino. Uno puede usar -max -size = 'size' donde 'tamaño' se puede fijar con k para kb, m para mb y g para gb.
$ rsync -avz --limit -size = '2g' /home /user /películas /backupmedia
4. Hablamos, hasta ahora, sobre lo bueno que es RSYNC para las copias de seguridad incrementales. Pero si desea transferir todo el archivo, de nuevo, puede hacerlo. Solo usa -W:
$ rsync -avzw/home/user/películas/hackers2.avi /backupmedia /
5. ¿Sabía que RSYNC puede ejecutar comandos en la máquina remota para ayudarlo a tener una lista de qué copiar/sincronizar? Puede, y funciona de la siguiente manera:
$ rsync -avrz user@host: "Find/home/user/desarrollo/-name *.C -print "\/Backup/Development/
6. Si desea cambiar el método de cifrado predeterminado que usa SSH, use -RSH:
$ rsync -avz --rsh = "ssh -c arcfour -l user" /fuente /destino
Es posible que quieras usar esto, especialmente si estás en una máquina muy lenta.
7. Este punto trata de preservar varios atributos de los archivos que se están copiando: -p conserva permisos, -x conserva XATTRS, -a preserva las ACL (su sistema de archivos fuente debe tener el concepto de ACL, por supuesto), -O preserva el propietario (solo superuser ), -H conserva enlaces duros y -g de conservas grupos. Haga una búsqueda después de la palabra "preservar" dentro del manual de RSYNC si lo que desea preservar no se enumera aquí. Recuerda que -A hace la mayor parte de la parte de preservación para ti, pero si quieres un control de grano más fino, eres libre de hacerlo.
$ rsync -vzpxaohg /fuente /destino
8. RSYNC es utilizado por los propietarios de los espejos en todas partes para mantenerse al día con los proyectos que están reflejando. Aquí hay unos ejemplos:
$ rsync -vaz --delete ftp4.Delaware.FreeBSD.org :: freeBSD// pub/ freeBSD/ $ rsync -avz --delete --safe -links rsync.apache.org :: apache -dist/rath/to/espejo $ rsync -auh rsync: // rsync.chiark.greenend.organizar.Reino Unido/FTP/Usuarios/Sgtatham/Pasty-Website-Mirror/ .
9. Queremos emitir una última palabra de advertencia: la final '/' en la dirección fuente es importante. Si lo haces
$ rsync -avz /fuente /destino
Obtendrá un resultado diferente al si hubiera hecho
$ rsync -avz /fuente / /dstination
Te dejaremos descubrir cuál es la diferencia, sin embargo, no pruebe este descubrimiento en datos importantes!
Tutoriales de Linux relacionados:
- Cómo hacer estresar probar su CPU en Linux
- Cosas para instalar en Ubuntu 20.04
- Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
- Ejemplos de RSYNC en Linux
- Cómo dividir la unidad USB en Linux
- Cómo usar Google Drive en Linux
- Cómo comparar el rendimiento del disco en Linux
- Ubuntu 20.04 Guía
- Cosas para instalar en Ubuntu 22.04
- Una introducción a la automatización, herramientas y técnicas de Linux