Interpretación detallada de rsync e inotify sincronización remota

Interpretación detallada de la sincronización remota rsync

1. Acerca de rsync

Una herramienta de copia de seguridad incremental rápida

Sincronización remota, sincronización remota

Admite la replicación local o sincroniza con otros hosts SSH, rsync

Dos, configure la fuente rsync

1. Ideas básicas

Crear archivo de configuración rsync.conf, archivo de cuenta independiente

Habilitar rsync - modo daemon

2. Ejemplos de aplicación

Backuper de usuario, lo que permite la sincronización

El directorio operativo es / var / www / html

3. Archivo de configuración rsyncd.conf

Debe establecerse manualmente, la sintaxis es similar a la configuración de Samba

Usuarios de autenticación de configuración de autenticación, archivo de secretos, si no se agrega, será anónimo

4. archivo de cuenta rsync

Adopte el formato de registro de "nombre de usuario: contraseña", un registro de usuario por línea

Datos de cuenta independientes, no dependientes del sistema de cuentas

5. Habilite el servicio rsync

Proporcionar servicios de forma independiente a través de -dawmon

Tres, uso del comando rsync

Formato básico: rsync [opciones] ubicación de orientación de ubicación original

Opciones comunes

-r Modo recursivo, incluidos todos los archivos del directorio y subdirectorios
-l Para los archivos de enlace simbólico, los archivos de enlace simbólico se siguen copiando
-v Mostrar información detallada sobre el proceso de sincronización
-desde Comprimir al transferir archivos
-a Modo de archivo, que conserva los permisos de archivo, los atributos y otra información, que es equivalente a la opción combinada "-riptgoD"
-pag Mantener la marca de permiso de archivo
-t Mantenga la marca de tiempo del archivo
-gramo Mantenga la marca de grupo del archivo (solo para superusuario)
-O Conservar la marca de propietario del archivo (solo para superusuario)
-H Mantener archivos con vínculos fijos
-A Conservar la información de los atributos de ACL
-D Mantenga archivos de equipos y otros archivos especiales
-Eliminar Eliminar archivos en la ubicación de destino pero no en la ubicación original
–Suma de comprobación Decidir si omitir archivos según la suma de comprobación (no el tamaño del archivo, la hora de modificación)

Cinco, sincronización rsync en tiempo real

1. Las deficiencias de la sincronización regular

①El tiempo para realizar la copia de seguridad es fijo, el retraso es obvio y el rendimiento en tiempo real es deficiente.
②Cuando la fuente de sincronización no cambia durante mucho tiempo, las tareas periódicas intensivas son innecesarias

2. Ventajas de la sincronización en tiempo real

①Una vez que cambie la fuente de sincronización, inicie la copia de seguridad inmediatamente
② Mientras la fuente de sincronización no cambie, no se realizará la copia de seguridad

Seis, sobre inotificar

1. El mecanismo de inotificación del kernel de Linux

①Proporcionado a partir de la versión 2.6.13 ②Puede
monitorear los cambios del sistema de archivos y responder a las notificaciones
softwareSoftware auxiliar: inotify-tools

2. rsync + inotify sincronización en tiempo real

notifywait: se utiliza para el monitoreo continuo, resultados de salida en tiempo real

inotifywatch: utilizado para el monitoreo a corto plazo, los resultados se publicarán una vez que se complete la tarea

-m: monitoreo continuo

-r: supervisa de forma recursiva todos los objetos secundarios

-q: simplifica la información de salida

-e: especifica qué tipos de eventos monitorear

Seis pasos del experimento rsync

1. Disposición ambiental

Maestro: rsync 、 httpd

Esclavo: rsync 、 httpd 、 inotify

2. Configuración maestra (192.168.200.11)

①Apague el cortafuegos

systemctl detener firewalld

setenforce 0

②Instale paquetes de software httpd y rsync

yum install -y httpd rsync

③Añadir archivo de configuración rsync

vim /etc/rsyncd.conf #Agregue el siguiente elemento de configuración
uid = root #Tampoco puede ser nadie
gid = root #Tampoco puede ser que nadie
use chroot = yes #Contenido en el directorio de origen
address = 192.168.200.11 #Dirección del monitor, monitorear el
puerto de dirección local 873 # Monitorear el puerto tcp / udp 873, puede ver
el archivo de registro a través de cat / etc / services | grep rsync = /var/log/rsyncd.log #Log ubicación del
archivo pid file = / var / run / rsyncd .pid # Identificación del proceso de almacenamiento ubicación del archivo
hosts allow = 192.168.200.0/24
#Segmento de red del cliente permitido para la sincronización [wwwroot] # nombre del módulo compartido
ruta = / var / www / html # La ruta real del directorio de origen (el directorio sincronizado )
comment = Document Root de www.fyf.com #Esto tiene poco efecto en nuestra configuración de rsync
read only = yes #Si es de solo lectura
dont compress = * .gz * .bz2 * .tgz * .zip * .rar * .z # No más durante la sincronización Tipo de archivo comprimido
auth users = backuper # Cuenta de autorización, varias cuentas separadas por espacios
secreto file = /etc/rsyncd_users.db # Archivo de datos que almacena información de la cuenta

④Archivos de datos de la cuenta de respaldo

#Si es anónimo, simplemente elimine los elementos de configuración "auth users" y "secrets file"

vim /etc/rsyncd_users.db

backuper: abc123 # No es necesario crear un usuario del sistema con el mismo nombre

chmod 600 /etc/rsyncd_users.db #Añadir permisos

⑤Instalar el servicio httpd

yum -y instalar httpd

systemctl iniciar httpd

systemctl habilitar httpd

⑥Crear directorios y archivos compartidos

cd / var / www / html

toque aaa bbb
Inserte la descripción de la imagen aquí

chmod + r / var / www / html / #Otorgar todos los permisos legibles

⑦Reiniciar el servicio

rsync --daemon #Inicie el servicio rsync, ejecútelo como un servicio de monitoreo independiente (demonio)

netstat -anpt | grep rsync #Ver número de puerto
Inserte la descripción de la imagen aquí

#Cerrar el método rsync

matar $ (gato /var/run/rsyncd.pid)

rm -rf /var/run/rsyncd.pid

3. Configuración del iniciador (esclavo)

①Apague el cortafuegos

systemctl detener firewalld

setenforce 0

② Instale rsync y httpd

yum install -y httpd rsync

③Realice compartir

#Descargue los recursos especificados al directorio local / opt para realizar una copia de seguridad

Formatear uno

rsync -avz [email protected] :: wwwroot / opt / # 密码 abc123

Formatear dos

rsync -avz rsync: //[email protected]/wwwroot / opt /
Inserte la descripción de la imagen aquí

④Realice ninguna interacción

echo "abc123"> /etc/server.pass

chmod 600 /etc/server.pass

crontab -e 30 22 * ​​* * / usr / bin / rsync -avz --delete --password-file = / etc / server.pass [email protected] :: wwwroot / opt /

systemctl reiniciar crond

systemctl enable crond

4. Inicie la monitorización automática inoyify

①Modificar el archivo de configuración del servidor de origen rsync (192.168.200.12)

vim /etc/rsyncd.conf

solo lectura = no #Cerrar solo lectura, la sincronización ascendente debe poder escribirse
Inserte la descripción de la imagen aquí

②Reiniciar el servicio

matar $ (gato /var/run/rsyncd.pid)

rm -rf /var/run/rsyncd.pid

rsync --daemon

③Ajustar los parámetros del kernel inotify

En el kernel de Linux, el mecanismo de inotificación predeterminado proporciona tres parámetros de control: max_queue_events (cola de eventos de monitoreo, el valor predeterminado es 16384), max_user_instances (el número máximo de instancias de monitoreo, el valor predeterminado es 128), max_user_watches (el número máximo de archivos para ser monitoreado por instancia, el valor predeterminado es 8192). Cuando la cantidad de directorios y archivos a monitorear es grande o los cambios son frecuentes, se recomienda aumentar los valores de estos tres parámetros

cat / proc / sys / fs / inotify / max_queued_events #Monitoring event queue
cat / proc / sys / fs / inotify / max_user_instances #Número máximo de instancias monitoreadas
cat / proc / sys / fs / inotify / max_user_watches #Número máximo de archivos monitoreados por ejemplo

vim /etc/sysctl.conf
# Incrementar cada parámetro fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048576

sysctl -p
Inserte la descripción de la imagen aquí

④Según el paquete inotify

Use el mecanismo de inotify también necesita instalar inotify-tools, con el fin de proporcionar inotifywait, programa de herramientas auxiliares de inotifywatch

notificar espera: puede monitorear varios eventos como modificar (modificar), crear (crear), mover (mover), eliminar (eliminar), attrib (cambio de atributo), etc., y generar el resultado inmediatamente cuando hay un cambio

inotifywatch: se puede usar para recopilar cambios en el sistema de archivos y cambios de resumen de salida después del final de la ejecución

#Dependiendo del entorno,
monte / dev / cdrom / mnt #Monte el disco
yum install gcc gcc gcc-c ++ make -y
#Cargue el paquete comprimido inotify-tools-3.14.tar.gz al directorio / opt, y luego descomprima
tar zxvf inotify- tools-3.14.tar.gz -C / opt /

cd /opt/inotify-tools-3.14
./configure
make && make install

# Ejecute el comando "inotifywait" y luego agregue archivos y mueva archivos al directorio / var / www / html en otra terminal, y rastree los resultados de la pantalla. #Después de
ejecutar el siguiente comando, ingresará al modo de monitoreo y no se puede operar, por lo que debe abrir otra página de terminal para
inotifywait -mrq -e modificar, crear, mover, eliminar / optar #opción
"-e": usado para especificar qué eventos monitorear
# Opción "-m": significa monitoreo continuo
# opción "-r": significa recursivamente todo el directorio
# opción "-q": información de salida simplificada

⑤Crear guión

#! / bin / bash
INOTIFY_CMD = “inotifywait -mrq -e modificar, crear, atribuir, mover, borrar / var / www / html /”
RSYNC_CMD = “rsync -apzH --delete --password-file = / etc / server .pass / var / www / html / [email protected] :: wwwroot / ”
$ INOTIFY_CMD | mientras lee DIRECTORIO ARCHIVO DE EVENTOS
hacer
if [$ (pgrep rsync | wc -l) -le 0]; luego
$ RSYNC_CMD
fi
hecho
Inserte la descripción de la imagen aquí
chmod + x inotify.sh # 给 脚本 添加 执行 权限
sh inotify.sh
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_51615030/article/details/114278649
Recomendado
Clasificación