inotify + rsync copia de seguridad en tiempo real, inotify + rsync copia de seguridad síncrona simulación de datos mysql, función inotify y principio de implementación, sincronización de archivos rsync en tiempo real- ~ @ Twang

Preparación ambiental

Dos centos7, cierre el firewall y selinux
A extremo de respaldo —— 192.168.112.153 [lado del servidor]
B fuente de respaldo —— 192.168.112.172 [lado del cliente]

Introducción

  • Inotify es un mecanismo de monitoreo de eventos de sistema de archivos asíncrono, de grano fino y poderoso. El kernel de Linux ha agregado soporte de Inotify desde 2.6.13. Inotify puede monitorear la adición, eliminación, modificación y movimiento del sistema de archivos. Event, al usar esta interfaz del kernel, el software de terceros puede monitorear varios cambios de archivos en el sistema de archivos, e inotify-tools es un software de terceros
  • Rsync tiene las ventajas de alta seguridad, respaldo rápido y soporte para respaldo incremental. A través de rsync, los requisitos de respaldo de datos que no requieren desempeño en tiempo real pueden resolverse, pero rsync no puede monitorear ni sincronizar datos en tiempo real.

principio

  • Inotify solo necesita implementarse en el cliente de sincronización, cuando el archivo monitoreado cambia, el script rsync se activa para sincronizar

Operación en A

1. Instale EPEL

yum -y install epel-release

2. Instale los servicios inotify y rsync

yum -y install inotify-tools rsync

3. Modifique el archivo de configuración rsync

vim /etc/rsyncd.conf 
uid=root
gid=root
use chroot = no
max connections = 10
strict modes = yes
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log
[mysqldata]
path = /data/mysqldata
comment = mysql data
ignore errors
read only = no
write only = no
hosts allow = 192.168.112.172
list = false
auth users = rsync_user
secrets file = /etc/rsync.password
  • Nota: ip escribe la ip de B [es decir, la ip del cliente], ¡
    y es necesario crear la ruta de la ruta! ! !

4. Crea un directorio

mkdir -p /data/mysqldata

5. Cree archivos de nombre de usuario y contraseña de rsync y agregue permisos

 echo "rsync_user:rsync_user_pwd" > /etc/rsync.password
 chmod -R 600 /etc/rsync.password

6. Inicie el servicio y verifique el puerto.

rsync --daemon
   netstat -nlpt|grep 873

Inserte la descripción de la imagen aquí

Operación en B

7. Instale EPEL

yum -y install epel-release

8. Instale los servicios inotify y rsync

yum -y install inotify-tools rsync

9. Configure el archivo de contraseña del cliente y modifique los permisos.

echo "rsync_user_pwd" > /etc/rsync.password
chmod -R 600 /etc/rsync.password

10. Scripting

vim bf.sh
#!/bin/bash
ip=192.168.112.153
src=/data/mysqldata_src/
dst=mysqldata
user=rsync_user
/usr/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e modify,delete,create,attrib ${
    
    src} \
    | while read file
do
rsync -vzrtopg --delete --progress $src $user@$ip::$dst --password-file=/etc/rsync.password > /dev/null && echo "$src was rsyncd"
done
  • Nota: ¡La ruta en la línea 6, yum está instalado, la /usr/bin/inotifywait
    fuente está instalada /usr/local/bin/inotifywait
    y es necesario crear la ruta src! ! !
  • Verificación de ruta
    Inserte la descripción de la imagen aquí

11. Crea un directorio

mkdir -p /data/mysqldata_src

12. Ejecute el script

sh bf.sh

13. Ingrese al directorio correspondiente y cree un archivo

cd /data/mysqldata_src/
 touch aa.txt

14. Vuelva a A y compruebe

cd /data/mysqldata/
ls

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qing1912/article/details/109309850
Recomendado
Clasificación