Linux verwendet Rsync + Inotify, um eine Echtzeitsynchronisierung lokaler und Remotedaten zu erreichen

Linux verwendet Rsync + Inotify, um eine Echtzeitsynchronisierung lokaler und Remotedaten zu erreichen

0x0 Testumgebung

Der Produktionsserver der Zentrale und der Backup-Server der Niederlassung erfordern eine Remote-Datensicherung. Die Umgebung ist wie folgt

**Centos 6.5**
Produktionsserververzeichnis: /home/zytest/files
Backup-Serververzeichnis: /home/zytest/files
Benutzername/Passwort: zytest/zytest

0x1 Aufbau einer Produktionsserverumgebung

0x1.1 Installieren Sie den gcc-Compiler und rsync

yum installiere gcc rsync -y

0x1.2 Kopiere inotify auf den Server und dekomprimiere es

cd /root
tar xfvz inotify-tools-3.13.tar.gz

0x1.3 Geben Sie das zu installierende inotify-Verzeichnis ein

 cd inotify-tools-3.13
 ./konfigurieren
 machen
 installieren     
 
 /usr/local/bin/inotifywait ##Überprüfen Sie, ob die Installation erfolgreich ist

0x2 Aufbau der Backup-Serverumgebung

0x2.1 Installieren Sie xinetd und rsync

yum installiere xinetd rsync -y

0x3 Folgende Inhalte werden zwischen den beiden Servern synchronisiert

Benutzeradd -u 600 zytest 
 Passwort zytest    
 Zytest
 su - zytest -c 'mkdir /home/zytest/files' ##Synchronisierungsverzeichnis erstellen

0x4 Konfigurieren Sie rsyncd auf dem Backup-Server

0x4.1 Bearbeiten Sie /etc/xinetd.d/rsync und ändern Sie es entsprechend dem folgenden Inhalt

deaktivieren = ja ==> deaktivieren = nein
Flags = IPv6 ==> Flags = IPv4
server_args = --daemon ==> server_args = --daemon --config=/etc/rsyncd.conf

0x4.2 Bearbeiten Sie /etc/rsyncd.conf und fügen Sie die folgenden Skriptinformationen hinzu

uid = root
gid = root
chroot verwenden = nein
Max. Verbindungen = 1000
strenger Modus = ja
Port = 873
pid-Datei = /var/run/rsyncd.pid 
Sperrdatei = /var/run/rsyncd.lock 
Protokolldatei = /var/log/rsyncd.log
# folgt für Benutzer „zytest“, ändert sich für andere Benutzer
[Zytest]
Pfad = /home/zytest
Fehler ignorieren
Authentifizierungsbenutzer =zytest
Geheimnisse-Datei = /home/rsync-dst.ps
nur lesen = nein
Liste = falsch

Ps: Die rsyncd-Konfigurationsdatei befindet sich auf xinetd, daher installiert der Backup-Server xinetd

0x4.3 Passwort in die aufgerufene Passwortdatei schreiben und Berechtigungen erteilen

echo zytest:zytest >> /home/rsync-dst.ps
chmod 600 /home/rsync-dst.ps

0x4.4 Starten Sie rsync über xinetd

 /etc/rc.d/init.d/xinetd neu starten

0x5 Konfigurieren Sie die Inosync-Skriptdatei auf dem primären Server

0x5.1 ** ##Bearbeiten Sie /root/inosync und fügen Sie Skriptcode hinzu **

#!/bin/sh
#chkconfig: 3 78 10

#Diese Datei existiert ab der Kompilierung
wenn [ ! -f /usr/local/bin/inotifywait ]
Dann
 echo "Kann nicht gestartet werden. Datei inotifywait existiert NICHT!"
 Ausfahrt
fi

#Diese Datei ist ein ausführbares Shell-Skript
wenn [ ! -f /usr/local/bin/inosync.so.1 ]
Dann
 echo "Administrator kontaktieren. inosync.so.1 existiert NICHT!"
 Ausfahrt
fi

Fall "$1" in
 'Start')
 /usr/local/bin/inosync.so.1 &
;;

'stoppen')
 pid=`ps -ef | grep -v grep | grep "inotifywait" | awk '{print $2}'`
 töten -9 $pid 2>&1
;;

'Neustart')
 $0 Stopp
 $0 Start
;;

esac

0x5.2 Skriptberechtigungen erteilen und so einrichten, dass es beim Booten gestartet wird

chmod a+x /root/inosync
 cp /root/inosync /etc/rc.d/init.d

0x5.3 Konfigurationsaufruf Hauptskriptdatei /root/inosync.so.1

rhost=**IP des Backup-Servers**
Benutzer=zytest
src=/home/zytest/dateien
dst=Zytest
#dst entspricht [zytest] in der Datei /etc/rsyncd.conf auf dem Dst-Server
log=/root/inosync.log
/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M:%S' --format '%T %w%f %e' -e close_write,create,move,delete,attrib $src | beim Lesen von Dateien
 Tun
 echo == rsync begin == >> $log
 rsync -avP --password-file=/home/rsync-src.ps --delete $src $user@$rhost::$dst >> $log 2>&1
 echo -- rsyncd -- >> $log
 Datum >> $log
 echo "${files} wurde per Rsync synchronisiert " >> $log 2>&1
 Erledigt

PS: Nach %T steht ein Leerzeichen und zwischen %f und %e steht ebenfalls ein Leerzeichen.

0x5.4 Erteilen Sie dem Skript inosync.so.1 Berechtigungen und kopieren Sie es nach /usr/local/bin

chmod a+x /root/inosync.so.1
cp /root/inosync.so.1 /usr/local/bin

0x5.5 Passwort in die aufgerufene Passwortdatei schreiben und Berechtigungen erteilen

echo zytest >> /home/rsync-src.ps
 chmod 600 /home/rsync-src.ps

0x6 Der Zielserver stellt den automatischen Start von Inosync ein und schaltet den Inosync-Dienst ein.

chkconfig --level 3 inosync ein
/etc/rc.d/init.d/inosync starten

0x7 Test ENDE

Erstellen Sie Dateien und Ordner im Verzeichnis /home/zytest/files auf dem Produktionsserver und prüfen Sie, ob der Backup-Speicher die Dateien und Ordner ebenfalls synchronisiert hat. Wenn ja, ist die Synchronisierung erfolgreich.

Der Vorgang kann über das Protokoll eingesehen werden

tail -f /root/inosync.log

Zusammenfassen

Dies ist das Ende dieses Artikels über die Verwendung von Rsync+Inotify in Linux zur Echtzeitsynchronisierung lokaler und Remote-Daten. Weitere Informationen zur Verwendung von rsync+inotify zur Echtzeitsynchronisierung von Remote-Daten finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • So verwenden Sie rsync unter Linux
  • Rsync schlägt alle anderen Backup-Tools. Können Sie bestimmte Verzeichnisse manuell blockieren?
  • Python rsync-Ordnersynchronisierungsskript zwischen Servern
  • Python+rsync synchronisiert Dateien präzise im angegebenen Format
  • Automatische Aktualisierung startet mit BrowserSync
  • Rsync+crontab regelmäßige Synchronisierungssicherung unter centos7
  • Verwenden von Rsync zum Durchführen einer automatischen Sicherung unter Linux
  • Detaillierte Erläuterung zur gleichzeitigen Datenmigration und -überprüfung mit Java Rsync

<<:  Tutorial zur Installation von MYSQL8.0 auf Alibaba Cloud ESC

>>:  Vue implementiert einen einfachen Lupeneffekt

Artikel empfehlen

Grundlegende Verwendung des Befehls wget unter Linux

Inhaltsverzeichnis Vorwort 1. Laden Sie eine einz...

Implementierung der Installation und Deinstallation von CUDA und CUDNN in Ubuntu

Inhaltsverzeichnis Vorwort Installieren des Grafi...

Detaillierte Erklärung des Initialisierungsmechanismus in Bash

Bash-Initialisierungsdateien Interaktive Login-Sh...

Detaillierter Installationsprozess und Konfiguration von mysql5.7.19 zip

Offizielle Version von MySQL v5.7.19 (32/64-Bit-I...

JS implementiert die Append-Funktion von jQuery

Inhaltsverzeichnis Zeig mir den Code Testen Sie d...

Detaillierte Schritte zur Installation von ros2 in Docker

Inhaltsverzeichnis Hauptthema 1. Installieren Sie...

So beheben Sie den MySQL-Fehler 10061

In diesem Artikel erfahren Sie die Lösung für das...

jQuery-Plugin zum Implementieren eines schwebenden Menüs

Lernen Sie jeden Tag ein schwebendes jQuery-Plug-...

Zusammenfassung häufiger Probleme und Lösungen in Vue (empfohlen)

Es gibt einige Probleme, die nicht auf Vue beschr...