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

Erläuterung der Konfiguration und Verwendung der MySQL-Speicher-Engine InnoDB

MyISAM und InnoDB sind die gängigsten Speicher-En...

Vue realisiert die Funktion eines Bucheinkaufswagens

In diesem Artikelbeispiel wird der spezifische Co...

Zusammenfassung der Erfahrungen und Fähigkeiten im Webdesign

■ Planung des Website-Themas Achten Sie darauf, da...

Drei Möglichkeiten zur Implementierung von Animationen in CSS3

Hiermit werden die Grundkenntnisse des Interviewt...

So verwenden Sie Axios-Anfragen im Vue-Projekt

Inhaltsverzeichnis 1. Installation 2. Es gibt kei...

Theorie: Die zwei Jahre User Experience

<br />Es ist nicht länger als zwei Jahre her...

Detaillierte Erläuterung der MySQL-Datumszeichenfolgen-Zeitstempelkonvertierung

Die Konvertierung zwischen Zeit, Zeichenfolge und...

Webdesign-Tutorial (5): Visuelles Webdesign

<br />Vorheriger Artikel: Webdesign-Tutorial...

Verwendungsanweisungen für den Befehl „Docker Create“

Mit dem Befehl „Docker Create“ können Sie einen C...

Detaillierte Erklärung der neuen Funktionen von ES9: Asynchrone Iteration

Inhaltsverzeichnis Asynchrones Durchlaufen Asynch...

Vue verwendet dynamische Komponenten, um einen TAB-Umschalteffekt zu erzielen

Inhaltsverzeichnis Problembeschreibung Was ist di...

Beispiele für neue Selektoren in CSS3

Struktureller (Position) Pseudoklassenselektor (C...

Reines CSS, um den Listen-Pulldown-Effekt auf der Seite zu erzielen

Möglicherweise sehen Sie häufig den folgenden Eff...