Interpretación detallada de la sincronización remota rsync
Escriba el título del catálogo aquí
-
- Interpretación detallada de la sincronización remota rsync
-
- 1. Acerca de rsync
- Dos, configure la fuente rsync
- Tres, uso del comando rsync
- Cinco, sincronización rsync en tiempo real
- Seis, sobre inotificar
- Seis pasos del experimento 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
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
#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 /
④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
②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
④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
chmod + x inotify.sh # 给 脚本 添加 执行 权限
sh inotify.sh