Gehen Sie von folgenden Anforderungen aus:
Gehen Sie von zwei Servern aus:
192.168.0.1 Der Quellserver hat das Verzeichnis /opt/test/
192.168.0.2 Der Zielserver hat das Verzeichnis /opt/bak/test/
Der Zweck der Implementierung besteht darin, ein bestimmtes Dateiverzeichnis der beiden Server in Echtzeit synchronisiert zu halten
Implementierungsmethode: Wird durch die Kombination von rsync erreicht +inotify-tools
Fügen Sie zunächst eine Vertrauensbeziehung zu den beiden Maschinen hinzu. Die spezifische Methode wurde im vorherigen Artikel vorgestellt
Details anzeigen: Vertrauensbeziehung hinzufügen unter Linux ohne Passwort-Anmeldung
Software muss installiert werden:
Muss sowohl auf dem Quellserver als auch auf dem Zielserver installiert werden
Quellserver: Es ist ein Rsync-Client, keine erforderliche Konfiguration
Zielserver: Es ist ein Rsync-Server. Sie müssen den Inhalt in /etc/rsyncd.conf konfigurieren
Dieses Tool dient zur Dateiüberwachung in Echtzeit. Das Tool erfordert Kernel-Unterstützung des Linux-Betriebssystems, erfordert mindestens Version 2.6.13
Um zu überprüfen, ob das Betriebssystem dies unterstützt Führen Sie dazu Folgendes aus:
uname -r Version anzeigen
Rückgabe:
2.6.32-358.6.1.el6.x86_64
, was bedeutet, dass Version 2.6.32 größer als 2.6.13 ist und unterstützt wird.
Ausführung:
ll /proc/sys/fs/inotify total 0 -rw-r--r-- 1 root root 0 Oct 18 12:18 max_queued_events -rw-r--r-- 1 root root 0 Oct 18 12:18 max_user_instances -rw-r--r-- 1 root root 0 Oct 18 12:18 max_user_watches
Wenn es drei Ausgaben gibt, bedeutet dies, dass inotify standardmäßig unterstützt wird und Sie das Tool inotify-tools installieren können
Wenn dies nicht der Fall ist unterstützt, müssen Sie eine neue Linux-Version verwenden. Wenn die Version des Betriebssystems
die Anforderungen erfüllt, kann es installiert werden.
Nach der Installation von inotify-tools werden die folgenden zwei Dateien im entsprechenden Installationsverzeichnis generiert:
ll /usr/local/bin/ total 88 -rwxr-xr-x 1 root root 44327 Oct 10 15:32 inotifywait -rwxr-xr-x 1 root root 41417 Oct 10 15:32 inotifywatch
Dies bedeutet, dass die Installation erfolgreich war.
Hinweis: Inotify muss auf dem Quellserver installiert werden und inotify muss nicht auf dem Zielserver installiert werden.
Erstellen Sie ein neues Skript auf dem Quellserver:
inotify_bak.sh
#!/bin/bash src=/opt/test/ /usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,delete,create,attrib $src | while read file do /usr/bin/rsync -arzuq $src 192.168.0.1::www/ echo " ${file} was rsynced" >>/opt/soft/log/rsync.log 2>&1 done
Erteilen Sie die Ausführungsberechtigung : chmod +x inotify_bak.sh
Führen Sie dann Folgendes aus: nohup inotify_bak.sh und stellen Sie es zur Ausführung in den Hintergrund
Zielserver: Starten Sie zuerst den rsync-Hintergrunddienst: /usr/bin/rsync --daemon
Quellserver: Führen Sie inotify_bak.sh aus &
Neue Verzeichnisse erstellen und Dateien im Quellserververzeichnis. Das Skript inotify_bak.sh erkennt sie und synchronisiert sie mit dem entsprechenden Verzeichnis des Zielservers.
Sie können die Protokolldatei anzeigen: /opt/soft/log/rsync.log Der Befehl lautet wie folgt: Beobachten Sie die Echtzeitsynchronisationssituation.
tail -f /opt/soft/log/rsync.log
/usr/local/bin/inotifywait: Fehler beim Laden gemeinsam genutzter Bibliotheken: libinotifytools.so.0: Gemeinsam genutzte Objektdatei kann nicht geöffnet werden: Keine solche Datei oder kein solches Verzeichnis
Das liegt daran, dass die Bibliotheksdatei nicht gefunden werden kann. Erstellen Sie einfach einen Softlink
ln -s /usr/local/lib/libinotifytools.so.0 /usr/lib64/libinotifytools.so.0
Das obige ist der detaillierte Inhalt vonEinführung in die Methode der Echtzeitsynchronisation zweier Server unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!